cmd.ExecuteNonQuery();'(' 附近有语法错误。

using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;
AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "Insert into T_Users(UserName,Password) values('" + username + "','" + password + "')";
cmd.ExecuteNonQuery();

Console.WriteLine("插入成功");

}
}

Console.Write("打开数据库链接成功");
Console.ReadKey();
错误显示

string sql = string.Format("insert into T_Users(UserName,Password) values('{0}','{1}')",username ,password );
cmd.CommandText = sql;
备注:如果你的username和password是变量的话直接这样写就可以了。
如果这2个是你要插入的字符串,那就换成下面的写法
先定义变量:
string Tname="username";
string Pwd="password";
string sql = string.Format("insert into T_Users(UserName,Password) values('{0}','{1}')",username ,password );
cmd.CommandText = sql;
即可。 如果还不行就换下面的写法。
string sql = "insert into T_Users(UserName,Password) values(@UserName,@Password)";
OleDbParameter[] para = new OleDbParameter[]//我用的是ACCESS,你是SQL的话及换成SQL即可,SQL的写法应该是SqlParameter []
{
new OleDbParameter("@UserName",Tname),
new OleDbParameter("@Password",Pwd)
};
cmd.Parameters.AddRange(para);
cmd.ExecuteNonQuery();追问

string sql = string.Format("insert into T_Users(UserName,Password) values('{0}','{1}')",username ,password );
cmd.CommandText = sql;
这样改可以了。能解释下原本不通过的原因吗,谢谢

追答

不通过因为插入的时候比较讲究呵呵,我没特意去研究过。
以上2种写法适合删除,查找的时候用,插入的时候建议你还是用最后一种比较规范。
错误的原因就是字符串拼接有问题,反正数据库就是不识别。
兄弟这是经验之谈啊,你以后只要知道发生这种情况如何解决就行了,何必去深究呢。
特别是编程,一条路走不通的时候别钻牛角尖,想想其他办法。

温馨提示:答案为网友推荐,仅供参考
相似回答