2012-02-19 13 views
1

さて私は、接続は大丈夫です、単純なMS Accessデータベースを持っているが、私はエラー私のAccessデータベースに画像を挿入することができません

INSERT INTOステートメントで

構文エラー

private void btnSave_Click(object sender, EventArgs e) 
{ 
    byte[] picbyte = System.IO.File.ReadAllBytes(imgFile); 
    try 
    { 
     conn = new OleDbConnection(connstring); 
     conn.Open(); 
     sqlcom = new OleDbCommand("INSERT INTO Image (Img) values (@Img)", conn); 
     sqlcom.Parameters.AddWithValue("@Img", picbyte); 
     sqlcom.ExecuteNonQuery(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
     conn.Close(); 
    } 
} 
を得続けます

テーブルの名前がImageで、列がImgId(オートナンバー)とImg(OLEオブジェクト)

+0

あなたは完全なエラーを投稿できますか? –

答えて

2

この問題Microsoft Jet 4.0の予約語を使用する列名がデータベーステーブルに含まれている場合に発生することがあります。テーブル名を変更できますか?

4

これを試してみてください:

byte[] picbyte = System.IO.File.ReadAllBytes(imgFile); 
using (var connection = new OleDbConnection(connstring)) 
using (var command = connection.CreateCommand()) 
{ 
    connection.Open(); 
    command.CommandText = "INSERT INTO [Image] (Img) VALUES (@Img)"; 
    command.Parameters.AddWithValue("@Img", picbyte); 
    command.ExecuteNonQuery(); 
} 
2

あなたのテーブル名(IMAGE)は、データ型です。それを逃れるためには、括弧[ ]を使わなければなりません。

関連する問題