2013-01-05 37 views
1

如何使用C#代码将图像保存在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(); 
+0

你试过了什么吗?我觉得不是。请阅读[常见问题]和[问] –

+0

尝试了很多,但它引发了一些错误“E42000:(-201)发生了语法错误。” – user1881251

+0

写下你的代码,错误信息和关于你的特定问题的更多信息。 –

回答

1

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

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

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

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

然后它会工作。

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

+0

添加参数仍然是相同的错误 – user1881251

+1

是的,现在我得到我的水晶球,并作出一个神奇的仪式,看你清理好的代码,与完整的错误报告像从专业我更新在上面?或者你希望我能免费来到你的位置并完成你的工作? – TomTom

相关问题