2016-08-28 1 views
-1

내 스크립트에서 한 줄로 붙어있어 암시 적으로 입력 문자열을 int 형으로 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에 실행을 중단하고 코드의 일부는 실행되지 않을 것입니다 : 당신은 심지어 int를 반환해야 만약 내가 그 코드도 정수에 작동하지 않는보기 때문에 당신은 확인해야합니다

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

.

관련 문제