0

我有一个 sql 表,它有一个图像 cloumn 我试图在将图像转换为字节后插入图像....我的插入查询看起来像这样

   INSERT INTO Member (F_NAME, L_NAME, D_O_B, UAE_ID_NO, MOBILE_NO, EMAIL_ID, REFERER, REF_CONTACT, ADDRESS, PICTURE) VALUES ('" + fname + "','" + lname + "','" + dob.ToShortDateString() + "','" + uaeid + "','" + mobile + "','" + emailid + "','" + reffere + "','" + refercontact + "','"+address+"',"+photo+")"

这里 pic 是图像列...我正在使用以下方法将图像转换为字节数组

    MemoryStream ms = new MemoryStream();
            //save the image into memory stream
            pBoxMember.Image.Save(ms, ImageFormat.Jpeg);
            //assign the byte array with total size of memorystream
            photo = new byte[ms.Length];
            ms.Position = 0;
            ms.Read(photo, 0, photo.Length);
            return true;

但它给了我这个错误对象或列名丢失或为空。对于 SELECT INTO 语句,验证每一列都有一个名称。对于其他语句,请查找空别名。不允许使用定义为 "" 或 [] 的别名。将别名更改为有效名称。"附近的语法无效。

4

1 回答 1

0

如果这应该工作,这应该是这样的:

var sql = "INSERT INTO Member (F_NAME, L_NAME, D_O_B, UAE_ID_NO, MOBILE_NO, " + 
"EMAIL_ID, REFERER, REF_CONTACT, ADDRESS, PICTURE) " + 
"VALUES ('" + fname + "','" + lname + "','" + dob.ToShortDateString() + "','" + uaeid + "','" + mobile + "','" + emailid + "','" + reffere + "','" + refercontact + "','" + address + "'," + photo + ")"

但是您应该为此使用 SQL 参数,例如:

string queryString = "INSERT INTO Member (F_NAME, L_NAME, D_O_B, UAE_ID_NO, ... VALUES(@fname ,@lname ....)";
SqlCommand cmd = new SqlCommand(queryString, dbConnection);
cmd.Parameters.AddWithValue("@fname",fname);
cmd.Parameters.AddWithValue("@lname",lname);
...
cmd.Parameters.AddWithValue("@blobParam",YourBytesArray);
...
cmd.ExecuteNonQuery(); 
于 2013-10-30T11:35:06.403 回答