使用C#代码在Informix数据库中保存图像?

时间:2013-01-05 10:52:14

标签: c# database informix

如何使用C#代码在Informix数据库中保存图像?

目前,我无法使用C#代码在Informix数据库中保存图像。

所有步骤都有效,只有当查询即将执行时才会抛出错误“E42000:( - 201)发生语法错误。”

以下是代码。

mycon.Open();
int len = Upload.PostedFile.ContentLength;
byte[] pic = new byte[len];
HttpPostedFile img = Upload.PostedFile;
Response.Write("Size of file = " + pic);
img.InputStream.Read(pic, 0, len);
//Upload.PostedFile.InputStream.Read(pic,0,len);
string str = "insert into imageinfo (name,address,photo) values('" + txtname.Text + "','" + txtaddress.Text + "'," + pic + ")";//,photo,@photo
mycmd = new OleDbCommand(str, mycon);
//mycmd.Parameters.AddWithValue("@id", int.Parse(txtid.Text));
mycmd.Parameters.AddWithValue("@name", txtname.Text);
mycmd.Parameters.AddWithValue("@address", txtaddress.Text);
mycmd.Parameters.AddWithValue("@photo", pic);
mycmd.ExecuteNonQuery();
mycon.Close();
lblMessage.Text = "Image details inserted successfully";
Response.Redirect("~/RetriveImage.aspx");
mycon.Close();

1 个答案:

答案 0 :(得分:1)

首先,你的代码是来自至少2个来源的复制/粘贴混乱,因为它没有任何意义。

您的插入内容直接具有值 - 并且您不能像这样放入图片,抱歉 - 但是您定义了未使用的参数。 2源代码。

然后代码被无意识地复制/粘贴。您定义了命名的参数,但OleDb不支持命名参数(http://social.msdn.microsoft.com/Forums/en-US/vsreportcontrols/thread/637db5d4-e205-489c-b127-7ca14abc48e3/) ,它告诉我你曾经通过OleDb使用Informix的参数,只是将代码复制/粘贴在一起。

  • 删除INSERT语句中的直接数据,放入参数标记。
  • 然后使用参数,根据我发给你的MS链接(位置,标记是?)。

然后它会起作用。

有时可能需要您实际阅读文档,而不是仅将不同来源的代码拼接在一起并寻求帮助。