请帮帮我。我不知道出了什么问题。这说我在关键字'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
答案 0 :(得分:3)
desc
是保留关键字 - 它表示order by
子句中的“降序”。所以:你需要将该列转义为[desc]
或"desc"
(取决于数据库),告诉它你的意思是列名。
答案 1 :(得分:1)
您使用关键字作为列名,因此必须引用它。但是,根据您的参数名称,无论如何,您可能意味着descr
而不是desc
。