关键字'desc'附近的语法不正确

时间:2017-12-04 00:11:46

标签: c# mysql

请帮帮我。我不知道出了什么问题。这说我在关键字'desc'附近有一个不正确的语法,但我没有看到这个错误。

Dim ms As New MemoryStream
        pbMainImage.Image.Save(ms, pbMainImage.Image.RawFormat)
        Dim sql As String = "insert into contestants(lName,fName,mName,age,gender,address,college,desc,const_num,image_main) values(@lname,@fname,@mname,@age,@gender,@address,@college,@descr,@num,@image)"

        Dim cmd As New SqlCommand(sql, constring)

        cmd.Parameters.Add("@lname", SqlDbType.VarChar).Value = tbLName.Text
        cmd.Parameters.Add("@fname", SqlDbType.VarChar).Value = tbFName.Text
        cmd.Parameters.Add("@mname", SqlDbType.VarChar).Value = tbMName.Text
        cmd.Parameters.Add("@age", SqlDbType.TinyInt).Value = Convert.ToInt32(tbAge.Text)
        cmd.Parameters.Add("@gender", SqlDbType.VarChar).Value = cmbGender.SelectedItem
        cmd.Parameters.Add("@address", SqlDbType.VarChar).Value = tbAddr.Text
        cmd.Parameters.Add("@college", SqlDbType.VarChar).Value = cmbDept.SelectedItem
        cmd.Parameters.Add("@descr", SqlDbType.VarChar).Value = tbDesc.Text.Trim()
        cmd.Parameters.Add("@num", SqlDbType.TinyInt).Value = Convert.ToInt32(tbNumber.Text)
        cmd.Parameters.Add("@image", SqlDbType.Image).Value = ms.ToArray()

        OpenConnection()


        Try
            cmd.Connection = constring
            cmd.ExecuteNonQuery()
            cmd.Dispose()
            constring.Close()

            MsgBox("Added New Contestant.")
        Catch ex As Exception
            MsgBox("Error at " & ex.ToString)
        End Try

2 个答案:

答案 0 :(得分:3)

desc是保留关键字 - 它表示order by子句中的“降序”。所以:你需要将该列转义为[desc]"desc"(取决于数据库),告诉它你的意思是列名。

答案 1 :(得分:1)

您使用关键字作为列名,因此必须引用它。但是,根据您的参数名称,无论如何,您可能意味着descr而不是desc