System.Data.SqlTypes.SqlNullValueException: 数据为空。不能对空值调用此方法或
答案:3 悬赏:80 手机版
解决时间 2021-02-11 20:47
- 提问者网友:骑士
- 2021-02-11 15:32
System.Data.SqlTypes.SqlNullValueException: 数据为空。不能对空值调用此方法或
最佳答案
- 五星知识达人网友:逃夭
- 2021-02-11 16:33
因为你从SQL中读取的值为(null), 你先要判断从SQL中读取的数据是否为空(null). 如果为空(null), 自己赋值为0或其他字符就可以了.
全部回答
- 1楼网友:掌灯师
- 2021-02-11 18:36
首先你使用一维数组来储存结果肯定是不行的,这样只能保存最后一条记录。如果一定要用数组的话,应该使用二维数组,建议使用DataSet。
而要避免发生这个错误,只要在赋值语句外面嵌套一个if判断来保证取出的数据不是NULL空值。
类似楼上这样:
for (int i = 0; i < 7; i++)
{
if(!reader.IsDBNull(i))
{
readstring[i] = reader.GetString(i);
}
}
而要避免发生这个错误,只要在赋值语句外面嵌套一个if判断来保证取出的数据不是NULL空值。
类似楼上这样:
for (int i = 0; i < 7; i++)
{
if(!reader.IsDBNull(i))
{
readstring[i] = reader.GetString(i);
}
}
- 2楼网友:人间朝暮
- 2021-02-11 17:06
IsDBNull
就像楼上兄弟说的,有可能读出的数据为NULL,可以这样改:
方法一:
while (reader.Read())
{
for (int i = 0; i < 7; i++)
{
if (reader.IsDBNull(i))
{
continue;
}
readstring[i] = reader.GetString(i);
}
}
方法二:
string sql = "select ISNULL([Name],''),ISNULL([Address],''),ISNULL([WebAddress],''),ISNULL([Telephone],''),ISNULL([Description],''),ISNULL([LeftTopPic],''),ISNULL([LeftBottomPic],'') from [t_Customer] where [CustomerID] = " + ctid;
方法三:
while (reader.Read())
{
for (int i = 0; i < 7; i++)
{
readstring[i] = reader[i].ToString();
}
}
就像楼上兄弟说的,有可能读出的数据为NULL,可以这样改:
方法一:
while (reader.Read())
{
for (int i = 0; i < 7; i++)
{
if (reader.IsDBNull(i))
{
continue;
}
readstring[i] = reader.GetString(i);
}
}
方法二:
string sql = "select ISNULL([Name],''),ISNULL([Address],''),ISNULL([WebAddress],''),ISNULL([Telephone],''),ISNULL([Description],''),ISNULL([LeftTopPic],''),ISNULL([LeftBottomPic],'') from [t_Customer] where [CustomerID] = " + ctid;
方法三:
while (reader.Read())
{
for (int i = 0; i < 7; i++)
{
readstring[i] = reader[i].ToString();
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯