在承受了很大压力之后,我遇到了一个问题,范围缩小到将字符串分配给datatable (cell?)
Dim dc As New DataColumn("Col1")
dc.DataType = System.Type.GetType("System.String")
ParameterTable.Columns.Add(dc)
For i = 0 To whereInValues.Count - 1
r = ParameterTable.NewRow
r.Item("Col1") = whereInValues(i).ToString
ParameterTable.Rows.Add(r)
Next这是有问题的代码的一小段。它是一个循环,遍历包含whereInValues语句IN()值的字符串的SQL (字符串)。
ParameterTable是我的DataTable
这将分配给参数的.value属性,该属性设置为Structured。
基本上,当我使用List的.ToString方法设置datatable的值时,它在调试器中显示得很好,但是没有从数据库返回任何结果。当我直接设置值时,如下所示:
r.Item(column) = "Barratt Homes"它返回正确的结果。我已经尝试在表达式周围包装了一个CStr(),但是没有效果。
以这种方式分配DataTable值有什么区别?.ToString to是否与System.String相同?
发布于 2019-03-11 20:01:31
对不起,我已经找到我问题的答案了。
我的代码自动将列表( of String)中的字符串包装成一个‘字符。当使用参数时,你显然不需要它,因为它构成了你要搜索的字符串的一部分。所以当我手动分配字符串时,我没有这些字符。
愚蠢的错误。
https://stackoverflow.com/questions/55101252
复制相似问题