1

如何使用 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();
4

1 回答 1

1

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

您的插入直接具有值 - 抱歉,您不能像那样放入 pic - 但您定义了未使用的参数。2 源代码。

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

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

然后它将起作用。

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

于 2013-01-05T11:28:59.940 回答