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 に答える