在我的代码中,Datatable具有整数类型的值。
而且,当我使用select方法时,所选的行具有{} DBNull
而不是int
。
首先,感谢您的回答。但是这些答案不理解我的问题。 所以,我再次总结我的问题。
1。我的代码
dtGo.Rows.InsertAt(_drGo, 0);
string _filter = "CODE = '" + _code + "'";
DataRow[] _drArray = dtGo.Select(_filter);
2。 Visual Studio手表显示以下内容
我的表dtGo有101列。当我选择
_drArray = dtGo.select(_filter);
_drArray具有3个列值错误,而其他列具有正确值
价值观。
在Visual Studio监视结果下面查找。 dtGo观看节目...
dtGo.Rows[0] {Systems.Data.DataRow} System.Data.DataRow
ItemArray {object[101]} object[]
[0] "Go호가" object{string}
[1] "001000" object{string}
[2] "신라섬유" object{string}
[3] 151453 object{int}
...
和_drArray手表显示...
_drArray[0].ItemArray {object[101]} object[]
[0] "Go호가" object{string}
[1] "001000" object{string}
[2] "신라섬유" object{string}
[3] {} object{System.DBNull}
再次提问。如您所见,select方法返回了一些行。除第3列外,其他数据表的值均正确。但是在第3列中,dtGo有值,但_drArray有DBNull。
请帮助我如何解决此问题... 我添加了捕获图像。
答案 0 :(得分:0)
有一件事,您可以将int
数据类型更改为Nullable<int>
或int?
来处理。
答案 1 :(得分:0)
谢谢。我得到一个提示并从您的答案中解决了。
原因,我不知道。但是我猜是因为我使用了Insert(_drGo,0)而不是Add(_drGo)。
我用这段代码解决了。
DataRow[] _drArray = dtGo호가.AsEnumerable()
.Where(row => row.Field<string>(dtPrefGo호가 + "CODE") == _code)
.ToArray();
这将返回与数据表相同的行顺序。 dtGo.Select方法将行顺序从dtGo.Rows.Length重新设置为0。
谢谢大家.....