SQL中用于创建表C#的语法错误

本文关键字:语法 错误 用于 创建 SQL | 更新日期: 2023-09-27 18:25:40

Hallo女士们先生们

我正在纠结于我认为应该是一个简单的解决方案,但找不到

基本上,我是通过SQL创建表的,当我运行SQL时,它会出现问题。这是我的代码:

OleDbCommand cmd = new OleDbCommand (@"CREATE TABLE " + ClientID + " (Transaction_ID INT PRIMARY KEY NOT NULL, Transaction CHAR(255), Date DATE, Transaction_Amount INT, Balance INT, Deposited INT, Withdrew INT, Loan INT, Applied INT, Approved INT, Payment_Monthly INT, Monthly_Income INT)", mydb);

现在,我测试了我的SQL语句,以找出SQL的哪一部分出现了错误,当我删除字段TransactionDate时,我发现它是有效的。如果我只删除其中一个,它仍然会崩溃。我甚至尝试将数据类型(如CHAR(255)VARCHAR(255))以及DATEINT进行更改。

老实说,我似乎找不出问题。请帮助

谢谢你抽出时间。

PS:ClientID是三个数字和三个字母的组合,例如带有一个标签。123#ABC

SQL中用于创建表C#的语法错误

这两个列名是SQL中的保留字。将它们放在方括号中可以解决您的问题:

[Transaction] CHAR(255), 
[Date] DATE,

请记住,任何时候在动态SQL或存储过程中访问这些字段时,都必须使用方括号,即

SELECT * FROM ClientTable WHERE [Transaction] = 'A'