【发布时间】:2015-09-12 05:20:43
【问题描述】:
我认为我缺少一些关于可空类型的基本知识。希望这个例子能带来新的理解,但至少,也许我们可以让这件事正常工作。
在一个类(一个对话框形式)中,我声明:
Property ProductStructureHeaderKey As Int32?
在另一个类中,我声明了该对话框的一个实例并尝试使用此行设置该属性:
dr.ProductStructureHeaderKey = If(parentRow.Cells(1).Value Is Nothing, Nothing, Int32.Parse(parentRow.Cells(1).Value))
当该行将 Nothing 分配给属性时,该属性等于 0。(然后,当我希望它传递 NULL 时,它会将 0 传递给 DB。)
这不是我所期望的,我一直在寻找看起来我在做正确的事情的代码(SO、MSDN 等),但很明显,我不是。所以,朋友们,我做错了什么?如何使用 Nullable 类型来满足我的需求?
【问题讨论】:
-
DBNull与Nothing不一样;看看应该通过DBNull的“稍后”部分可能会有所帮助 -
我在其他地方有处理 Nothing 到 NULL 转换的代码,问题确实是让这个 Nullable 设置为 Nothing。但是蒂姆的回答把我引向了我的愚蠢错误。