【问题标题】:cannot implicitly convert type 'string' to 'int' in linnworks无法在 linnworks 中将类型“string”隐式转换为“int”
【发布时间】:2016-08-28 12:29:15
【问题描述】:

我的脚本被困在一行中,并且在第 48 行返回运输时无法将类型字符串隐式转换为 int,我不太确定为什么会出错,但只是试图检索以检查运输文本看看是不是英国下一个

namespace linnworks.finaware.CommonData.Objects                // leave untouched                            
{                                                                                               // leave untouched                            
public class ScriptMacroClass : linnworks.scripting.core.IOrderScript                       // leave untouched                            
    {                                                                                       // leave untouched                            
        public void Initialize(linnworks.finaware.CommonData.Objects.Order order,linnworks.scripting.core.Debugger debug)           // leave untouched                            
        {                                                                                   // leave untouched                            
             }

public int getShipping(linnworks.finaware.CommonData.Objects.Order order)
{

string xml = "";
string shipping = "";


string query = @"
Select ox.ObjectXml
FROM [Order] o
INNER JOIN OrderXml ox ON ox.fkOrderId = o.pkOrderID
WHERE o.pkOrderID = @OrderID
";

using (SqlConnection conn = new SqlConnection(order.GetConnectionString))
{

conn.Open();
SqlCommand cmd = new SqlCommand(query, conn);
cmd.Parameters.AddWithValue("@OrderId", order.pkOrderID);

using (XmlReader reader = cmd.ExecuteXmlReader())
{

//loop over XML to find the nodes we want
while (reader.ReadToFollowing("OrderWithItems"))
{ //root node
while (reader.ReadToFollowing("ShipServiceLevel"))
{ // buyer node with child elements
{ //the node we want, get it as an string
shipping = reader.ReadElementContentAsString();
}
}
}
}

conn.Close();

}

return shipping;

if (shipping == "UK Next")
{
order.Marker = 2;
order.Save(0);
}


            }                                                                                   // leave untouched                            

            public string Filter(){                                                      // leave untouched                            
                /*Optional: Specify your order filter in query variable, must be SQL Statement that outputs pkOrderId column ONLY*/
                string query="";
                return query;
            }                  

     }                                                                                           // leave untouched                            
}  

【问题讨论】:

  • 确定这个return shipping; 不起作用,因为函数应该返回一个int,请更改函数的返回类型。

标签: c# return


【解决方案1】:

您将getShipping 函数定义为返回int,实际上,return 甚至在您的函数结束之前返回string。事实上,该函数将在 return 上停止执行,并且您的那部分代码将永远不会执行:

if (shipping == "UK Next")
{
order.Marker = 2;
order.Save(0);
}

你应该检查你是否应该返回一个int,因为我看到代码甚至没有对整数进行操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-03
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    相关资源
    最近更新 更多