从数据库中提取数据出错

abob 2006-07-28 08:04:08
错误如下:
无法将类型为“System.DBNull”的对象强制转换为类型“System.String”。
数据库中字段为: minzu 类型:nvarchar(3)
用dataAdapter提取出来存入datatable,然后提取这个字段的数据代码如下
DataSet1.MemberInfo2Row member = table[0]; //member为已被添充的table中的dataRow
string m_minzu=member.minzu;
编译没有错误,运行后出现这个错误
问大虾
...全文
190 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
marvelstack 2006-07-29
  • 打赏
  • 举报
回复
你要进行判断该行该列是否为空值,
DataSet1.MemberInfo2Row member = table[0]; //member为已被添充的table中的dataRow
if(member.IsNull(member.minzu) == false)//不为空
string m_minzu=member.minzu;
编译没有错误,运行后出现这个错误
szc21 2006-07-28
  • 打赏
  • 举报
回复
我的建议一样,先把他们初始化一下,不是空的在传值
xuguanghui1221 2006-07-28
  • 打赏
  • 举报
回复
加个判断
string m_minzu="";
if(member.minzu.isDBNull())//这个判断写的格式不一定,但是应该可以判断出来member.minzu是否为空的
{
m_minzu="";
}
else
{
m_minzu=member.minzu;

}
Dong 2006-07-28
  • 打赏
  • 举报
回复
“System.DBNull
-------------------------
如果是在获取的时候,那就初始化输入参数


DataSet1.MemberInfo2Row member = table[0]; //member为已被添充的table中的dataRow
-----------------------------------》
member = table.rows[0];

string m_minzu=member.minzu;
-------------->
string m_minzu=member["minzu"].tostring();
abob 2006-07-28
  • 打赏
  • 举报
回复
一楼二楼的建议都实验了,情况还是一样.
怎么弄呀
karykwan 2006-07-28
  • 打赏
  • 举报
回复
字段的值为空,他得到System.DBNull,你全部填上看:
另可以这样
//....
DataSet ds=....
DataTable dt=ds.Tables[0];
string st = dt.Rows[0]["lcid"].ToString();
Eddie005 2006-07-28
  • 打赏
  • 举报
回复
MemberInfo2Row的代码?

里面未对字段的值为<null>的情况进行处理

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧