首页 > 数据库 > mysql教程 > 为什么我的参数化查询会抛出'缺少参数”错误?

为什么我的参数化查询会抛出'缺少参数”错误?

Patricia Arquette
发布: 2024-12-31 04:19:08
原创
150 人浏览过

Why Does My Parameterized Query Throw a

参数化查询错误:缺少参数

简介:

参数化查询通过允许参数与查询字符串分开指定。但是,如果未提供必需的参数,则可能会导致错误“参数化查询需要未提供的参数。”

场景:

考虑以下代码片段来自 Visual Basic .NET应用程序:

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
    list.Items.Clear()

    cmd.CommandText = "SELECT * FROM borrow where (Department LIKE '%" & TextBox2.Text & "%')"
    cmd.Connection = con
    cmd.CommandType = CommandType.Text
    con.Open()


    rd = cmd.ExecuteReader()
    If rd.HasRows = True Then
        While rd.Read()

            Dim listview As New ListViewItem

            listview.Text = rd("ID").ToString
            listview.SubItems.Add(rd("Department").ToString)
            listview.SubItems.Add(rd("Purpose").ToString)
            listview.SubItems.Add(rd("Items_Details").ToString)
            listview.SubItems.Add(rd("Requested_by").ToString)
            listview.SubItems.Add(rd("Approved_by").ToString)
            listview.SubItems.Add(rd("Date").ToString)
            listview.SubItems.Add(rd("Status").ToString)
            listview.SubItems.Add(rd("Date_Returned").ToString)

            list.Items.Add(listview)

        End While
    End If
    con.Close()
登录后复制

问题:

在文本框中输入搜索字符串后,代码会引发以下错误:

The parameterized query '(@Parameter1 nvarchar(4000))SELECT * FROM
borrow where (Departme' expects the parameter '@Parameter1', which was
not supplied.
登录后复制

解决方法:

出现这个错误是因为没有参数在查询字符串中指定。要解决此问题,请添加一个参数(例如 @Department),并根据用户输入指定其值:

cmd.Parameters.Add("@Department", SqlDbType.VarChar)

If (TextBox2.Text = Nothing) Then
    cmd.Parameters("@Department").Value = DBNull.Value
Else
    cmd.Parameters("@Department").Value = TextBox2.Text
End If
登录后复制

此代码检查文本框是否为空,如果为空,则将参数值设置为 DBNull.Value 。否则,它将参数值设置为文本框中输入的文本。

通过提供参数,查询将成功执行并返回过滤后的数据。

以上是为什么我的参数化查询会抛出'缺少参数”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板