日期:2014-05-17  浏览次数:20511 次

向sql数据库中插入数据时,插入的是变量名,而不是变量名对应的字符串,是哪里错了?
正在学习sql server,这个问题整了好久也没弄明白。

相关的语句:
  conn.ConnectionString = "Server = (local);" + "Database = MsgBoard;" + "Integrated Security=true;";
  ...
  dbCmd.CommandText = "insert into post(name,subject,message,ip)
  values('''+strName+''','''+strSubject''','''+strMsg+''','''+strIP+''');";
  dbCmd.ExecuteNonQuery();

在数据库中得到的分别是 '+strName+' '+strSubject' '+strMsg+' '+strIP+'

并不是那些变量对应的值。那个地方出错了?

------解决方案--------------------
不知道你是否用过模板字符串
dbCmd.CommandText = String.Format(@"insert into post(name,subject,message,ip)
values('{0}','{1}','{2}','{3}')",strName,strSubject,message,ip);
在这里加上断点,然后把拼接出来的CommandText作为SQL命令直接在查询分析器里面执行,看会不会得到正确结果,然后再进行修改即可。
------解决方案--------------------
"insert into post(name,subject,message,ip)
values('+strName+','+strSubject','+strMsg+','+strIP+');";

这些无非就是引号的问题