Asp.net 如何在下面的代码中解决用户附近的不正确语法?

Asp.net 如何在下面的代码中解决用户附近的不正确语法?,asp.net,Asp.net,如果用户名列有空格,则用引号将其括起来 若用户名列在用户名和用户名之间并没有空格,那个么您应该使用用户名 string a = @"insert into login(\"user name\") values ('"+TextBox1.Text+"')"; 如果用户名列实际包含空格,请用括号将其括起来: string a = @"insert into login(username) values ('"+TextBox1.Text+"')"; 您还应该使用名称中包含空格的字段,这些字段应

如果用户名列有空格,则用引号将其括起来

若用户名列在用户名和用户名之间并没有空格,那个么您应该使用用户名

string a = @"insert into login(\"user name\") values ('"+TextBox1.Text+"')";
如果用户名列实际包含空格,请用括号将其括起来:

string a = @"insert into login(username) values ('"+TextBox1.Text+"')";

您还应该使用名称中包含空格的字段,这些字段应该用方括号括起来

string a = @"insert into login([user name]) values ('"+TextBox1.Text+"')";
还请记住,当代码似乎正常工作时,构建sql命令的字符串连接也是一个真正的错误。当有人试图插入一个带有引号的用户名时,你突然发现你的代码不再工作了。 取而代之的是一个类似于上面的方法来移除这些弱点

顺便说一句,尽管您仍然可以更改该字段名并删除空格。使用它没有任何好处,将来的每个查询都会受到这个恼人的问题的影响缺少括号

您的插入查询无效。它还可以进行SQL注入,这是另一个相当严重的问题。如果用户名是实际的列名,则需要将其限定为insert into login[user name]值。。。
string a = @"insert into login([user name]) values ('"+TextBox1.Text+"')";
string s = @"Data Source=.....";
using(SqlConnection c = new SqlConnection(s))
using(SqlCommand cmd = new SqlCommand("insert into login([user name]) " + 
                                      "values (@uname)", c))
{
    c.Open();
    cmd.Parameters.AddWithValue("@uname", textbox1.Text);
    cmd.ExecuteNonQuery();
}