正如标题所说,我有一个msaccess数据库,需要从中查找由字符串值确定的特定数据集。必须这样做的原因是,我可以在这个数据集中找到一个单元格的值,它必须用作查找某个文件的路径。到目前为止,我的方法如下:
Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\ExaptLokal.accdb")
Dim cmd As New OleDb.OleDbCommand
Dim dt As New DataTable
Dim da As New OleDb.OleDbDataAdapter
Dim sql As String
sql = "SELECT NC_KEY FROM EXAPT_NC_KOPF_DATEN WHERE NC_PROGRAMM_NAME =" & ProgrammNr.Text.ToString
MsgBox(sql)
conn.Open()
cmd.Connection = conn
cmd.CommandText = sql
da.SelectCommand = cmd
da.Fill(dt)
fullpath = dt.ToString
最后,我希望将sql查询的结果作为“fullpath”变量的值,但到目前为止 da.Fill(dt)
row让我很难说它与数据类型有冲突。
在这种情况下是否需要datatable,或者是否可以跳过该步骤,直接在fullpath变量中获取查询结果?
提前感谢大家
编辑:谢谢你的帮助(虽然不是最友好的,但我是谁的判断),我终于得到它的工作 Execute Scalar
方法。我只希望这个网站的新手会受到更好的欢迎,哈哈,有一个伟大的一天
1条答案
按热度按时间mepcadol1#
我将连接字符串移动到类级变量,以便您可以在其他方法中使用它。
我将数据访问代码与用户界面代码分开,将值从文本框传递给返回路径的函数。
我将select语句更改为使用参数。始终使用参数来避免sql注入和错误。
使用
Using...End Using
块以确保关闭和释放数据库对象。这个Using
块同时包含命令和连接。你可以通过考试
.CommandText
以及.Connection
直接到命令的构造函数。向参数集合添加参数时,请提供参数名称、数据库中的数据类型以及字段的大小。我不得不猜测的类型和大小,所以,检查您的实际值数据库。
因为您只需要一个值就可以使用
.ExecuteScalar
.用法。。。