2017-01-21 48 views
0

我,給了我誤差數據爲空。此方法或屬性不能被稱爲對NULL值誤差

數據是空代碼。此方法或屬性不能在空叫做值

if (reader.Read()) 
      { 
       return reader.GetString(0); 
      } 
      return null; 

下面是完整的代碼

[WebMethod] 
public static string GetCurrentToBin(string ToBin, int warehouseId) 
{ 
    var connectionString = ConfigurationManager.ConnectionStrings["SqlConn"].ToString(); 
    using(var conn = new SqlConnection(connectionString)) 
    { 
     const string queryString = "exec sp_P_WMS_Stock_Adj_Validation_Proc @Bin , @warehouse"; 

      var sqlCommand = new SqlCommand(queryString , conn); 
      sqlCommand.Parameters.AddWithValue("@Bin",ToBin); 
      sqlCommand.Parameters.AddWithValue("@warehouse", warehouseId); 

      conn.Open(); 
      var reader = sqlCommand.ExecuteReader(); 

      if (reader.Read()) 
      { 
       return reader.GetString(0); 
      } 
      return null; 
    } 
} 
+0

哪一行代碼會引發錯誤?該線上變量的價值是什麼? –

+0

@nad可以請你分享exec proc –

+0

exec的輸出sp_P_WMS_Stock_Adj_Validation_Proc。在sql server上運行它,並顯示o/p –

回答

0

,您可以嘗試空值像

if(!reader.IsDBNull(0)) 
    return reader.GetString(0); 

或者使用方法低於

public string GetString(SqlDataReader reader, int columnIndex) 
{ 
    if(!reader.IsDBNull(columnIndex)) 
     return reader.GetString(columnIndex); 
    return string.Empty; 
} 

這樣

return GetString(reader, 0); 
相關問題