【发布时间】:2018-11-08 13:21:22
【问题描述】:
我有一个 DataTable dt 列 RefNum。有一行 RefNum = 293
当我尝试使用dt.Select("RefNum = 293")检索值时,我没有得到任何结果,但是当我将数字包装成单引号dt.Select("RefNum = '293'")时,我得到了结果
有人可以解释一下,它是如何工作的吗?
其他值也可以阅读
在数据库列中 RefNum 是一个 nvarchar 列
【问题讨论】:
-
听起来RefNum的数据类型是字符串类型。
-
@Crowcoder RefNum 是 nvarchar ,但到目前为止,其他值可以不带引号读取。怎么可能?
-
@Z.R.T.
nvarchar是 SQL 中的字符串。 -
@S.Akbari 同意,但是如何在没有引号的情况下检索同一列中的某些值,而其他值则不能。你如何解释图片上的不同行为?
-
@Z.R.T.如果行为不同,则表示 types 不同。 DataTable 对象是 .NET 对象。列的类型将是
string而不是nvarchar。比较将遵循 .NET 规则,其中比较不同类型的对象默认为false。但在 SQL 中,一种类型被隐式转换为另一种类型,并且将值进行比较,就好像它们是相同的类型一样