SQL SELECT查询不能与参数一起使用,但可以与串联配合使用

原边

我正在尝试根据中的所选代码选择客户的姓名ComboBox当我运行以下代码时,我收到一条错误消息,指出一个或多个必需参数没有任何值。

sql = "SELECT [Customer_Name] FROM [Customers] WHERE [Customer_Code] = @code"
Dim cmd As New OleDb.OleDbCommand(sql, con)
cmd.Parameters.Add("@code", OleDb.OleDbType.VarChar).Value = cmbCustomer.Text

Dim da As New OleDb.OleDbDataAdapter(sql, con)
Dim ds As New DataSet

da.Fill(ds)

txtCustomer.Text = ds.Tables(0).Rows(0).Item("Customer_Name")

但是,当我运行相同的查询但不带参数时,它运行良好。

sql = "SELECT [Customer_Name] FROM [Customers] WHERE [Customer_Code] = '" & cmbCustomer.Text & "'"
Dim cmd As New OleDb.OleDbCommand(sql, con)

Dim da As New OleDb.OleDbDataAdapter(sql, con)
Dim ds As New DataSet

da.Fill(ds)

txtCustomer.Text = ds.Tables(0).Rows(0).Item("Customer_Name")

第一种方式我真的错过了某些东西吗?如果没有,为什么这种方式行不通?

大卫

这是因为 OleDbDataAdapter

您将设置DataAdapter为接受sql,和连接的字符串con,这意味着cmd.Parameter不会随其传递。

因此,您的代码将在寻找da.SelectCommand.Parameters.Add

你要么需要

da.SelectCommand.Parameters.Add("@Code", OleDb.OleDbType.VarChar).Value = cmbCustomer.Text

或者

Dim da As New OleDb.OleDbDataAdapter(cmd)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么函数模板不能理解NULL但可以与nullptr一起使用?

MS Access SQL:将SELECT INTO与UNION ALL查询一起使用

连接池不能与用于SQL Server for Linux的ODBC Driver 13一起使用

SQL Server错误:'BETWEEN ... FOLLOWING AND CURRENT ROW'不是有效的窗口框架,不能与OVER子句一起使用。

如何执行参数化的SQL查询(将LIKE与@变量一起使用)

是否可以将SQL Server会话上下文与Azure弹性查询一起使用

SQL:LEFT JOIN和别名不能一起使用

tcpdump:串联不能与“ and”一起使用!

Microsoft SQL Server:“登录失败。登录来自不受信任的域,不能与Windows身份验证一起使用。”

Websocket自定义服务器不能与Firefox一起使用,但可以与Chrome一起使用

将数据存储到SQL不能与我的SQL连接器一起使用并且scrapy

使用WMIC的批处理文件不能与TaskScheduler一起正常使用(但可以从命令行正常工作!)

如何使此SQL查询与mysql 8一起使用

SQL查询不能使用别名,但可以用于索引

为什么我的sql与Max函数一起使用时,它不能与Abs函数一起工作?

sql <>不能与datetime一起使用

SQL查询不能与之间的日期一起使用

将报告分组在一起(可能与SQL一起使用)?

是否需要修改RegEx模式才能与MySql中的SQL一起使用?

将SQL插入带有参数的select中,以便与事件计划程序一起使用

下面的查询在sqlyog上执行完美,但是不能与CI $ this-> db-> query($ sql)一起使用

SQL Server 不存在或访问被拒绝但可与 udl 一起使用

身份验证登录模块标志足够不能与两个模块一起使用,但可以单独使用

为什么这个 SQl 注入只能与 AND ''=' 一起使用?

查询 sql 与 python 一起使用

Recycler View 不能与 ImageView 一起使用,但可以与 ImageView+TextView 一起使用

Azure SQLDW 翻译在 Informatica SQL 查询中无法识别,但可以在 SSMS 中使用

将 foreach/while/loop 与 sql 查询一起使用

脚本不能与 ` 一起使用,但可以在单个命令中使用