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

using(SqlConnectionconn=newSqlConnection(@"DataSource=.\SQLEXPRESS;AttachDBFilename=|... 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();
错误显示
展开
 我来答
zhuxinjun1982
2012-04-14 · 知道合伙人互联网行家
zhuxinjun1982
知道合伙人互联网行家
采纳数:2145 获赞数:8328
毕业于上海行健职业学院,大专学历;2007~2009在北大青鸟进修网络编程课目。现任网络主管,平时爱好上网。

向TA提问 私信TA
展开全部
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种写法适合删除,查找的时候用,插入的时候建议你还是用最后一种比较规范。
错误的原因就是字符串拼接有问题,反正数据库就是不识别。
兄弟这是经验之谈啊,你以后只要知道发生这种情况如何解决就行了,何必去深究呢。
特别是编程,一条路走不通的时候别钻牛角尖,想想其他办法。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式