2013-01-05 57 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

相關問題