无法使用 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();

无法使用 C# 输入 SQL 命令

它应该是:

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 - 提供给相应列的值

希望这对你有用