无法使用 C# 输入 SQL 命令
本文关键字:输入 SQL 命令 | 更新日期: 2023-09-27 18:37:06
我正在尝试让我的程序进入我的 SQL Server 数据库,但是当我运行它时,我收到一个错误,说")"附近的语法不正确。
SqlConnection conn = new SqlConnection("Data Source=AJ-PC;Initial Catalog=Customers;Integrated Security=True");
conn.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO Customers ('1', '1', '1', '1000/01/01', '1', '1')", conn);
cmd.ExecuteNonQuery();
conn.Close();
它应该是:
SqlCommand cmd = new SqlCommand("INSERT INTO Customers(col1, col, col3, ....) VALUES ('1', '1', '1', '1000/01/01', '1', '1')", conn);
******
您需要指定 VALUES
关键字,我还建议始终指定要插入的表中的显式列列表。
您在查询中错过了 VALUES
关键字
INSERT INTO Customers VALUES ('1', '1', '1', '1000/01/01', '1', '1')
这样做:
SqlCommand cmd = new SqlCommand("INSERT INTO Customers (column names...) values('1', '1', '1', '1000/01/01', '1', '1')",con);
您没有指定列名和值关键字。
我知道
这以不同的方式回答了这个问题。但这是供将来参考的。我建议你使用try...catch...finally
块。
SqlCommand cmd;
try {
conn.Open();
string query = "INSERT INTO Customers (col1, col2, col3,...) VALUES ('val1', 'val2', 'val3',...)";
cmd = new SqlCommand(query, conn);
int RowsAffected = cmd.ExecuteNonQuery();
if(RowsAffected > 0) {
//If you are on Console:
Console.WriteLine("1 Row Inserted");
//If you are on WinForms / WebForms:
lblMessage.Text = "1 Row Inserted";
} catch (Exception ex) {
//If you are on Console:
Console.WriteLine("Some Exception: " + ex.Message.ToString());
//If you are on WinForms / WebForms:
lblMessage.Text = "Some Exception: " + ex.Message.ToString();
} finally {
conn.Close();
}
你错过了在你的命令中包含"VALUES"子句。您将按如下方式使用它
插入Table_Name(Col1,Col2,...ColN) 值 (VAL1,VAL2,...VAL3)
哪里Table_Name - 您的表名称Col1,Col2,...ColN - 表中的列名VAL1,VAL2,...VAL3 - 提供给相应列的值
希望这对你有用