数据表具有字符串类型的值。
当我使用select方法时,所选行具有{} DBNull
而不是string
。
我的代码:
dtGo.Rows.InsertAt(_drGo, 0);
string _filter = "CODE = '" + _code + "'";
DataRow[] _drArray = dtGo.Select(_filter);
在调试时,变量如下所示
dtGo.Rows[0]
ItemArray
[3] "151453" object{string}
_drArray[0].ItemArray
[3] {} object{System.DBNull}
我多次使用选择方法。但是这种情况,我不知道。 请告诉我为什么select将字符串值更改为DBNull。
答案 0 :(得分:0)
列的类型(CODE)为整数。可以从您的观察值中看到
dtGo.Rows[0]
ItemArray
[3] "151453" object{int}
因此,您需要比较一个整数值而不是字符串。试试
dtGo.Rows.InsertAt(_drGo, 0);
string _filter = "CODE = " + _code ;
DataRow[] _drArray = dtGo.Select(_filter);
如果此列的类型应为字符串,请检查表定义。
答案 1 :(得分:0)
感谢您的回答。
但是请注意_drArray是过滤的结果。 如果filter有问题,我将无法获得_drArray。
我想知道的是为什么select方法缺少某个列的值的原因。
您可以看到数据表dtGo和选定的_drArray行的列[0],[1],[2]的值相同。 但没有列[3]。
151453已经存储在数据表中。并且已经过滤到_drArray。 因此,我可以看到[0],[1],[2]列具有值。
ps。我的代码中有一些韩语。因此,我重新输入了变量名。也许这让您感到困惑。过滤列名称是另一个,现在有问题。