我有一个代码,它给我错误
数据是空的。无法在空值
上调用此方法或属性
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)
您可以尝试使用
之类的空值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)
您应首先检查IsDBNull。
例如,请参阅msdn https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.isdbnull.aspx