永发信息网

C# 中对DataTable 的字段赋值 有时能采用null赋值,而有时候必须采用DBNull.Value 赋值 请问为什么?

答案:2  悬赏:60  手机版
解决时间 2021-03-19 22:05
如下例:
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 赋值(每个字段都是有值的)
最佳答案
DBNull.value是处理SQL查询返回空项的,因为ADO.NET中全部以类的型式存储数据(dr,ds.../所以toString()不会报空项异常).
而NULL是未实例化即未开辟内存空间的
所以两个的区别是,一个开辟了空间,但"值"为空,后者连空间都没有.
全部回答
没看懂什么意思?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
又被女朋友嫌弃不能独立没主见
全国成人自考的书籍是一样的吗?
三餐我想知道这个在什么地方
3x5(三乘五)应该是3个5,还是5个3?
问大家一个问题哈!画动漫人物时,酒红色的头
沈阳好的风景区有哪些
您好、我手机卡里有较多话费,有什么方式或借
大通建新再生资源回收有限公司在什么地方啊,
是否应该参加嵌入式培训?
荷塘区株洲爱加贝(汽齿)幼儿园地址在哪,我要
合肥春之声和万思哪个好
看外国电影中文配音的话就觉得有点别扭,这是
兰芝是高端品牌吗
怎样练习打字速度快些(拼音)?
百吉顺快餐怎么去啊,有知道地址的么
推荐资讯
看过辰东小说的来、逆天级和红尘仙那个厉害?
捷信现金贷款8000,利息多少
上海市静安区房地产交易中心怎么样
跨库检索的定义?(什么是跨库检索?)
永恒纪元法师技能怎么搭配 永恒纪元法师技能
签订了劳动合同,怎样办理劳动能力鉴定,申请病
支付宝提现500怎么银行卡显示少一千?
幸运花屋在哪里啊,我有事要去这个地方
中国移动通信智能手机专卖店地址有知道的么?
平常小程序用的人多不多啊?
山西职业技术学院有派遣证和报到证吗?
根据短文回答问题 ()How old is jimmy? A.He
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?