2013-08-03 76 views
0

每一個 我編寫的代碼插入一些數據到Microsoft Access數據庫,但我有一個錯誤「插入到語句中的語法錯誤」我不知道爲什麼 !!! 任何人都可以幫我嗎? 提前致謝; 代碼:語法錯誤插入語句中的C#鏈接到MS Access通過ADO.NET

OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\me\Library Store\Library Store\Store.accdb"); 
    try 
    { 
     conn.Open(); 

     OleDbCommand cmd = new OleDbCommand(); 
     cmd.Connection = conn; 
     cmd.CommandText = "INSERT INTO Libarary (ISBN, Name, Gategory, Author, Cost, Date) VALUES (@ISBN, @Name, @Gategory, @Author, @Cost, @Date) "; 
     cmd.Parameters.AddWithValue("@ISBN", ISBNTB.Text); 
     cmd.Parameters.AddWithValue("@Name", NameTB.Text); 
     cmd.Parameters.AddWithValue("@Gategory", GategoryTB.Text); 
     cmd.Parameters.AddWithValue("@Author", AuthorTB.Text); 
     cmd.Parameters.AddWithValue("@Cost", int.Parse(CostTB.Text)); 
     cmd.Parameters.AddWithValue("@Date", dateTimePicker1.Text); 

     cmd.ExecuteNonQuery(); 

      MessageBox.Show("Data Added!"); 
      conn.Close(); 


    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 

enter image description here

回答

6

當一個或多個您的域使用保留關鍵字,你需要時刻用方括號括該領域。 (一個非常煩人的問題)。在您的查詢,您可以使用兩個保留關鍵字:日期,收款人名稱

cmd.CommandText = "INSERT INTO Libarary (ISBN, [Name], Gategory, Author, Cost, [Date]) " + 
        "VALUES (@ISBN, @Name, @Gategory, @Author, @Cost, @Date) "; 

如果不是太晚了,我建議你重新命名這些領域,以避免這類問題在未來。

+0

非常感謝你的配合,它現在的作品:) –

+0

@MohamedSafwat把括號使它的工作? – Ehsan

+0

是的,Ehsan Ullah,它的工作:) –