如下例:
if (cbHoleType.Checked!=true)
{
for (int i = 0; i < dt.Rows.Count;i++ )
{
dt.Rows[i]["spec_type"]=null;
}
}
if (cbOD_CO.Checked != true)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["od_co"] = DBNull.Value;
}
}
if (cbDesc.Checked != true)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["report_desc"] = null;
}
}
if (cbOD.Checked != true)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["od"] = DBNull.Value;
}
}
这个能测试通过,但是我在把DBNull.Value 换成Null是出错 四个字段都是数据库中一张表的字段,dt是取出来的DataTable
但是我的 cbDesc 同样也是dt的字段,却可以用null 赋值(每个字段都是有值的)
C# 中对DataTable 的字段赋值 有时能采用null赋值,而有时候必须采用DBNull.Value 赋值 请问为什么?
答案:2 悬赏:60 手机版
解决时间 2021-03-19 22:05
- 提问者网友:送舟行
- 2021-03-19 08:16
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-03-19 08:32
DBNull.value是处理SQL查询返回空项的,因为ADO.NET中全部以类的型式存储数据(dr,ds.../所以toString()不会报空项异常).
而NULL是未实例化即未开辟内存空间的
所以两个的区别是,一个开辟了空间,但"值"为空,后者连空间都没有.
而NULL是未实例化即未开辟内存空间的
所以两个的区别是,一个开辟了空间,但"值"为空,后者连空间都没有.
全部回答
- 1楼网友:躲不过心动
- 2021-03-19 09:11
没看懂什么意思?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯