0

我编写的每个代码都将一些数据插入 Microsoft Access 数据库,但我有一个错误“插入语句中的语法错误”我不知道为什么!有人帮我吗?提前致谢 ; 代码:

 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());
    }
}

在此处输入图像描述

4

1 回答 1

6

当您的一个或多个字段使用保留关键字时,您需要始终将该字段括在方括号中。(一个非常烦人的问题)。在您的查询中,您使用了两个保留关键字:DATE 和 NAME

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

如果还不算太晚,我建议您重命名这些字段以避免将来出现此类问题。

于 2013-08-03T15:49:13.700 回答