【问题标题】:Why am I getting an error with my parameterized ADO query?为什么我的参数化 ADO 查询出现错误?
【发布时间】:2011-05-26 22:36:17
【问题描述】:
Dim txtFName As TextBox = CType(Wizard1.FindControl("txtFName"), TextBox)
Dim txtLName As TextBox = CType(Wizard1.FindControl("txtLName"), TextBox)

Dim MyDbConnection As New SqlConnection(ConfigurationManager.ConnectionStrings.Item("Journeyeast Connection String").ToString)
MyDbConnection.Open()

Dim SQL = "INSERT INTO Registration(FName, LName) VALUES (@FName, @LName)"

Dim MySqlCommand As New SqlCommand(SQL, MyDbConnection)
MySqlCommand.Parameters.Add("@FName", SqlDbType.NChar, 10, txtFName.Text)
MySqlCommand.Parameters.Add("@LName", SqlDbType.NChar, 10, txtLName.Text)

MySqlCommand.ExecuteNonQuery()

我收到以下错误:

参数化查询 '(@FName nchar(10),@LName nchar(10))INSERT INTO Registration(FNam' 需要参数 '@FName',但未提供该参数。

我做错了什么?

顺便说一句,我知道nchar(10) 不是名字和姓氏的好选择。

【问题讨论】:

    标签: vb.net ado.net sqlcommand sqlparameter


    【解决方案1】:

    因为你没有提供参数值。

    看看:

    Dim SQL = "INSERT INTO Registration(FName, LName) VALUES (@FName, @LName)"
    
    Dim MySqlCommand As New SqlCommand(SQL, MyDbConnection)
    MySqlCommand.Parameters.AddWithValue("@FName",txtFName.Text)
    MySqlCommand.Parameters.AddWithValue("@LName",txtLName.Text)
    
    MySqlCommand.ExecuteNonQuery()
    

    编辑:

    MySqlCommand.Parameters.Add("@FName", SqlDbType.NChar, 10).Value = txtFname.Text
    MySqlCommand.Parameters.Add("@LName", SqlDbType.NChar, 10).Value = txtFname.Text
    

    【讨论】:

    • 嗯。我以为那是第三个参数。这么多超载的潜艇,我一定误读了我正在传递的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 2019-05-06
    • 2020-12-30
    相关资源
    最近更新 更多