语法错误插入语句中的C#链接到MS Access通过ADO.NET

问题描述:

每一个 我编写的代码插入一些数据到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

当一个或多个您的域使用保留关键字,你需要时刻用方括号括该领域。 (一个非常烦人的问题)。在您的查询,您可以使用两个保留关键字:日期,收款人名称

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,它的工作:) –