2016-08-28 8 views
-1

私のスクリプトには1行しかつきませんが、暗黙のうちにタイプ文字列をint型に変換することはできません。間違ったちょうどそれはあなたがあなたのgetShipping関数が返すように定義されている英国の次linnworksで暗黙的に 'string'型を '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        
} 
+0

確かに 'return shipping;'は機能しません。関数が 'int'を返すことが予想されるので、関数の戻り値の型を変更します。 –

答えて

0

言うかどうかを確認するために出荷テキストをチェックするために取得しようとしてint、実際に、returnは、あなたの関数が終了する前であってもstringをする。実際には、機能がreturn上で実行を停止し、あなたのコードの一部が実行されることはありません:

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

私はそのコードも整数に動作していない見るので、あなたも、intを返すかどうかを確認する必要があります。

関連する問題