0

我想从用户向 DataTable 插入数据。我得到这个异常:“异常:事务附近的语法不正确”。我试图找到语法错​​误,但无法解决。

public void Add_to_Transaction(SqlConnection conn , int serial_number ,  DataTable dt)
{
   try
   {
      //DataTable dt = new DataTable();
      SqlCommand cmd1 = new SqlCommand();
      cmd1.Connection = conn;
      cmd1.CommandText = "SELECT * FROM Transaction";
      SqlDataAdapter adapter = new SqlDataAdapter();
      adapter.SelectCommand = cmd1;
      adapter.Fill(dt);

      SqlParameter serial_number1 = new SqlParameter("product_id",serial_number);
      SqlParameter quantity = new SqlParameter("quantity", 0);
      SqlParameter date = new SqlParameter("date", DateTime.Today);
      cmd1.Parameters.Add(serial_number1);
      cmd1.Parameters.Add(quantity);
      cmd1.Parameters.Add(date);
      Console.WriteLine("111111111111111111");

      cmd1.CommandText = "INSERT INTO Transaction (quantity,date,product_id) VALUES (@quantity,@date,@product_id)";
      cmd1.ExecuteNonQuery();

      Console.WriteLine("222222222222222222");

      cmd1.Parameters.Clear();
   }

   catch (Exception e)
   {
      Console.WriteLine(e.Message);
   }
 }
4

3 回答 3

3

T-SQL 中有一些词是保留关键字。如果不使用括号,您不能直接在 sql 中使用它们。因此,要么为这些列或表名选择不同的名称,要么[forbiddenword]在它们周围使用括号:

INSERT INTO [Transaction] (quantity,date,product_id) VALUES (@quantity,@date,@product_id);
SELECT * FROM [Transaction];

保留关键字 (Transact-SQL)

于 2013-04-11T20:16:27.570 回答
1
SELECT * FROM [Transaction]

输入单词[ ]使 SQL 知道它不是关键字。

于 2013-04-11T20:15:52.567 回答
0

Transaction是一个关键词。这是你的意思吗?

于 2013-04-11T20:18:32.970 回答