它说','附近的语法不正确当我尝试将项目插入我的数据库?

时间:2016-06-12 22:31:47

标签: sql vb.net visual-studio-2015 sql-server-express

代码:

ImageView imageView = (ImageView) findViewById(R.id.imageView);
Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageInByte = baos.toByteArray();
//save your stuff

这是错误消息:

  

类型' System.Data.SqlClient.SqlException'未处理的异常发生在System.Data.dll

中      

其他信息:','附近的语法不正确。

2 个答案:

答案 0 :(得分:6)

您的代码应使用parameters。试试这个:

Dim cmd As New SqlCommand(("INSERT INTO ProductIndex VALUES(" &
                          "@ID," &
                          "@Name," &
                          "@Price," &
                          "@Desc)"), m_cn)

cmd.Parameters.Add("@ID", SqlDbType.Char)
cmd.Parameters("@ID").Value = txtID.Text
cmd.Parameters.Add("@Name", SqlDbType.Char)
cmd.Parameters("@Name").Value = txtName.Text   
cmd.Parameters.Add("@Price",  SqlDbType.Char)
cmd.Parameters("@Price").Value = txtPrice.Text
cmd.Parameters.Add("@Desc",  SqlDbType.Char)
cmd.Parameters("@Desc").Value = txtDesc.Text

这些类型可能是错误的(尤其是Price,可能还有ID),但是你知道它们是什么,我不知道,你可以很容易地纠正它们。

答案 1 :(得分:1)

您需要将字符串值包装在单引号中

Dim cmd As New SqlCommand(("INSERT INTO ProductIndex VALUES('" & txtID.Text & "',

很难看到,但在变量周围的双引号之前和之后只有一个引号。

我已回答了您的具体问题,但您应该使用参数