数据是空的。无法在Null值错误上调用此方法或属性

时间:2017-01-21 11:34:37

标签: c# asp.net

我有一个代码,它给我错误

  

数据是空的。无法在空值

上调用此方法或属性
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;
     }
}

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)