首頁 > 資料庫 > mysql教程 > 為什麼我的參數化查詢會拋出'缺少參數”錯誤?

為什麼我的參數化查詢會拋出'缺少參數”錯誤?

Patricia Arquette
發布: 2024-12-31 04:19:08
原創
151 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板