"Incorrect syntax near ')'."

"Incorrect syntax near ')'."

我有一个程序可以接受一些输入并对它们进行处理,然后将它们存储在本地数据库中(使用 SQL 服务器)。

我有以下连接代码:

SqlConnection con = new SqlConnection();
con.ConnectionString = ("Data Source=DESKTOP-PGHMM6M;Initial Catalog=LocalUsers;Integrated Security=True");

con.Open();

String st = "INSERT INTO data(Username,Password, Hash, EncryptedPassword)";
SqlCommand cmd = new SqlCommand(st, con);

cmd.Parameters.AddWithValue("@Username", Username);
cmd.Parameters.AddWithValue("@Password", textBox2.Text);         
cmd.Parameters.AddWithValue("@Hash", savedPasswordHash);
cmd.Parameters.AddWithValue("@EncryptedPassword", FinalEncryptedPass);

cmd.ExecuteNonQuery();

con.Close();

它在 cmd.ExecuteNonQuery(); 行失败,并抛出此异常:

Incorrect syntax near ')'

我什至不确定从哪里开始,因为自大学以来(107 年前)我还没有做过任何这样的事情。任何人都可以帮助我开始吗?我一直在搜索,但似乎没有任何效果。

也许您的插入内容应该如下所示:

INSERT INTO data (Username, Password, Hash, EncryptedPassword) 
VALUES (@Username, @Password, @Hash, @EncryptedPassword)

VALUES 子句需要位于插入语句字符串中。我还建议使用 using 块而不是直接打开 SqlConnection,因为无论是完成还是错误退出时都会自动关闭连接。虽然从技术上讲,在命令文本中使用 Stringstring 没有区别,但 String 最常用于引用 class 而 string 通常用于对象引用,例如此处的情况。

string connectionString = @"YourConnectionString";

string st = "INSERT INTO data(Username,Password, Hash, EncryptedPassword) VALUES (@Username, @Password, @Hash, @EncryptedPassword)";

using (SqlConnection con = new SqlConnection(connectionString))
{
    SqlCommand cmd = new SqlCommand(st1, con);

    cmd.Parameters.AddWithValue("@Username", Username);
    cmd.Parameters.AddWithValue("@Password", textBox2.Text);
    cmd.Parameters.AddWithValue("@Hash", savedPasswordHash);
    cmd.Parameters.AddWithValue("@EncryptedPassword", FinalEncryptedPass);

    con.Open();
    cmd.ExecuteNonQuery();
}