2012-02-19 2 views
1

잘 나는 연결이 괜찮 간단한 MS Access 데이터베이스를 가지고 있지만 나는 오류내 Access 데이터베이스에 이미지를 삽입 할 수 없습니다

문 INTO INSERT에서

구문 오류

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)는 데이터 형식입니다. 그걸 피하려면 [ ] 대괄호를 사용해야합니다.

command.CommandText = "INSERT INTO [Image] (Img) VALUES (@Img)"; 
관련 문제