vb.net - VB.Net 应用程序不返回所有 Oracle 数据行
问题描述
我有一个我们已经使用了一段时间的 VB.Net 应用程序。最近有人指出,我们为零件编号加载到程序中的数据集缺少一些记录。
我尝试了 select 语句的不同变体。我已经编辑了应用程序下拉菜单属性以使下拉菜单更大,试图让它显示更多问题。我还尝试重写将我的数据集行添加到下拉列表中的项目的循环。我放了一个消息框来给我记录数,数据集中缺少大约 80 条记录。
我通过打开我的数据库客户端并对数据库运行完全相同的选择语句来确认这一点。在数据库客户端上运行 select 语句会返回所有行,但如果我使用数据适配器运行它并填充数据集,则会丢失记录。下面是我的代码。对可能发生的事情有什么建议吗?
'Load Part #s
OraSQL = "SELECT Part_No FROM TableName Where Contract = 'ContractName' AND Part_No Like 'PartPrefix%' AND Pat_No NOT LIKE = 'WrongPartPrefix%'"
OraDa = New Odbc.OdbcDataAdapter(OraSQL, OraCon)
OraCon.Open()
OraDa.Fill(OraDs, "Part")
OraCon.Close()
'Populate Combo Box with Active Machines
SelectedRow = 0
' Load items into dropdown
TotalRows = OraDs.Tables("Part").Rows.Count
SelectedRow = 0
TxtPartNo.Items.Add("")
While SelectedRow < TotalRows
TxtPartNo.Items.Add(OraDs.Tables("Part").Rows(SelectedRow).Item("Part_No"))
SelectedRow += 1
End While
编辑:我更新了 SQL 语句,使其看起来更像我正在使用的实际 SQL 语句。只有一个 WHERE 语句后跟 AND 运算符。
再次编辑:我重写了函数以利用数据读取器而不是数据适配器,以查看以更有效的方式重写是否可能会有所帮助。但是,我仍然得到相同的结果。下面是代码块:
Using OraCon
Dim command As Odbc.OdbcCommand = New Odbc.OdbcCommand(OraSQL, OraCon)
OraCon.Open()
Dim reader As Odbc.OdbcDataReader = command.ExecuteReader()
If reader.HasRows Then
Do While reader.Read()
TxtPartNo.Items.Add(reader.GetString(0))
Loop
End If
OraCon.Close()
End Using
解决方案
结果我在程序中使用了我们的测试数据源,并在客户端使用了生产数据库。像个白痴一样。感谢所有帮助过的人!
推荐阅读
- java - 我该如何解决这个按钮它无法进入活动页面?
- javascript - 使用Javascript循环遍历数组和数组
- java - 识别 java 应用程序的内存问题
- javascript - 使用本机 javascript 将对象转换为字符串
- python - 如何将 ZCA Whitening 的主成分应用于深度学习推理
- javascript - React:使用 useState 控制功能组件中的输入
- javascript - 在 Promise 上推进假计时器并传递解决值
- sql - 子查询返回超过 1 个值。如何向列添加更多值?
- javascript - 如何使用 Javascript 将事件添加到 html 标记
- python - 实际在云端训练google cloud ml引擎——方法说明