【发布时间】:2021-12-16 12:16:19
【问题描述】:
使用 db 访问和 Vb 网络,我应该想使用快速查询从我的表中提取一个值。其实我用这个代码
Dim conn As OleDb.OleDbConnection = DBConnect.getDbConnection()
Try
Dim selectSql = "select payed as P from mytable where Val(ID) = '4' "
Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(selectSql, conn)
Dim ds As DataSet = New DataSet
da.Fill(ds, "mytable")
Dim dt As DataTable = ds.Tables("mytable")
Dim row As DataRow
.....etc
但是我记得在 vb6 中使用 ado,我可以用另一种方式完成它,就像这样
(CnMain.Execute("SELECT Payed as P From mytable Where Val(id) = '4'")("P"))
在 vbnet 中有没有办法通过一些 oledb 命令来获得相同的结果? 谢谢
【问题讨论】:
-
当然是。看看 OleDBCommands docs.microsoft.com/en-us/dotnet/api/…
-
您确定 Val(ID) 是正确的语法吗?列 id 的数据类型是什么?为什么要尝试将其转换为数字,然后将其与字符串进行比较?这对我来说没有多大意义。
-
何史蒂夫,我使用了随意的值和语法。我只想解释两种不同的查询设置方法。真的我的问题不是上面的查询,它确实运行正常,而不是像我下面描述的那样写
-
@Hursey 阅读您的链接页面,我想我可以使用 executescalar。也许它会得到相同的结果。 (也许:-))
-
是的,执行阅读器,给你很大的灵活性,但老实说,你目前正在做的填充数据集实际上是同一件事。它真的只是让你免于做所有的跑腿工作。什么才是最好的真正取决于您的确切要求和个人喜好