Member 12693655 Ответов: 2

Xml-скрипт не работает продолжайте получать ошибку не может неявно преобразовать тип "int" в "string" в строке 39


Я новичок в написании сценариев

Я сделал это

пространство имен linnworks.finaware.CommonData.Объекты // оставить равнодушным
{ // оставляем
ScriptMacroClass открытый класс : linnworks.сценарии.ядро.IOrderScript / / оставить нетронутым
{ // оставляем
public void Initialize (linnworks.finaware.CommonData.Objects.Заказ заказать,linnworks.сценарии.ядро.Debugger debug) / / оставить нетронутым
{ // оставляем

}

public int getShipping(linnworks.finaware.CommonData.Objects.Заказ заказ)
{

строка xml = "";
доставка струн = "";

строка запроса = @"
Выберите ox. ObjectXml
Из [того] о
Внутреннее соединение OrderXml вола на вола.fkOrderId = о.pkOrderID
Где o. pkOrderID = @OrderID
";

используя (sqlconnection с соед = новый объект sqlconnection(приказ.GetConnectionString))
{

Коннектикут.Открыть();
SqlCommand cmd = new SqlCommand(query, conn);
УМК.Параметры.AddWithValue ("@OrderId", order.pkOrderID);

использование (XmlReader reader = cmd.ExecuteXmlReader())
{

// loop over XML, чтобы найти нужные нам узлы
while (reader. ReadToFollowing ("OrderWithItems"))
{ //корневой узел
while (reader. ReadToFollowing ("ShipServiceLevel"))
{//узел покупателя с дочерними элементами
{//узел, который мы хотим, получаем в виде строки
доставка = читатель.ReadElementContentAsInt();
}
}
}
}

Коннектикут.Закрывать();

}

возврат товара;

если (доставка = = " ND день")
{
ордер. маркер = 2;
order. Save(0);
}


} / / оставить нетронутым

public string Filter () {//оставить нетронутым
/ * Необязательно: укажите фильтр заказа в переменной запроса, должен быть оператор SQL, который выводит только столбец pkOrderId*/
строка запроса="";
запрос возврата;
}

} / / оставить нетронутым
}


-------------------------------

но получите ошибку "не удается неявно преобразовать тип "int" в "string" в строке 39

Что я уже пробовал:

Я осмотрелся вокруг, но застрял на том, почему он терпит неудачу

Richard Deeming

1) какая линия является линией 39?

2) как выглядит возвращаемый XML-файл?

3) Вы уверены, что это C++? По-моему, это больше похоже на C#.

2 Ответов

Рейтинг:
2

Member 12693655

Я изменил линию

shipping = reader.ReadElementContentAsInt();


к
shipping = reader.ReadElementContentAsString();


но все равно не повезло


Рейтинг:
0

Richard MacCutchan

shipping = reader.ReadElementContentAsInt();

Вы объявили shipping как струна, так ReadElementContentAsInt должен возвращать строку. В качестве альтернативы вы можете позвонить ToString() о возвращаемом значении. Или еще лучше, используйте ReadElementContentAsString .

Кроме того, как уже упоминалось выше, это C#, а не C++, пожалуйста, исправьте свои теги.