求救!!这个INSERT语句哪儿错了!

jackiezhy 2006-03-20 09:56:20
string sql = " INSERT INTO HouseSourceInfo(ID,Hname,Hstate,Harea,HdanPrice,HfullPrice,Hcheckstate,Hfloor) VALUES ('"+this.textBox1.Text+"','"+this.textBox2.Text+"','"+this.textBox3.Text+"','"+this.textBox3.Text+"','"+this.textBox4.Text+"','"+this.textBox5.Text+"','"+this.textBox6.Text+"','"+this.textBox7.Text+"','"+this.textBox8.Text+"')";
SqlCommand myCommand = new SqlCommand(sql,conn);
myCommand.ExecuteNonQuery();

...全文
268 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
unknow_123 2006-03-22
  • 打赏
  • 举报
回复
像这样的问题,最好是把SQl语句打印出来,放到相应的数据里面执行一下,会有更多的信息的
gzlyp 2006-03-21
  • 打赏
  • 举报
回复
建议
  像这样的添加记录、使用带参数的存储过过程。
RUN_ 2006-03-21
  • 打赏
  • 举报
回复
lovvver(强大方受尊重,羡鱼不如结网!)

比较细心
doney_dongxiang 2006-03-20
  • 打赏
  • 举报
回复
字段数 不一致
j_lei407 2006-03-20
  • 打赏
  • 举报
回复
另外还有最好写成
this.textBox1.Text.Replace("'","''");
j_lei407 2006-03-20
  • 打赏
  • 举报
回复
监视一下看看变量sql赋值之后是什么再在查询分析器里执行一下看看
xrwang 2006-03-20
  • 打赏
  • 举报
回复
建议将
string sql = " INSERT INTO HouseSourceInfo(ID,Hname,Hstate,Harea,HdanPrice,HfullPrice,Hcheckstate,Hfloor) VALUES ('"+this.textBox1.Text+"','"+this.textBox2.Text+"','"+this.textBox3.Text+"','"+this.textBox3.Text+"','"+this.textBox4.Text+"','"+this.textBox5.Text+"','"+this.textBox6.Text+"','"+this.textBox7.Text+"','"+this.textBox8.Text+"')";
SqlCommand myCommand = new SqlCommand(sql,conn);
myCommand.ExecuteNonQuery();
改写成带参数的SQL语句,好处有:
1.便于调试;
2.不用转换字符串中出现的特殊字符(例如' " %等);
3.可防止SQL插入;
4.别人输入的东西没经过检查,不一定能够转换成你需要的类型.
bdb 2006-03-20
  • 打赏
  • 举报
回复
我觉得还是写成 Sqlparamter来做吧。这样的语句总比你哪样写要快多了。
chenzhixin 2006-03-20
  • 打赏
  • 举报
回复
字符串这样写看看

“\"”+this.textbox1.Text+"\""
iceblue2005gather 2006-03-20
  • 打赏
  • 举报
回复
直接设置断点在sql语句上,把获得的数据在查询分析器中直接执行看看,错误很好找,我一般都是这么解决的。sql server 数据库的错误是很好找的。
顽皮小子 2006-03-20
  • 打赏
  • 举报
回复
1、检查字段类型和长度
2、this.textBox1.Text最好写成this.textBox1.Text.Trim()
Lucky527 2006-03-20
  • 打赏
  • 举报
回复
看看数据库中字段类型,ID是什么?如果是自动加的ID这么插入肯定出错。如果不是自动加的ID,看类型和长度,与你所填的符合不?
我看你有戏 2006-03-20
  • 打赏
  • 举报
回复
把SQL语句打印出来,放到查询分析器里一试就知道是什么问题了
lovvver 2006-03-20
  • 打赏
  • 举报
回复
你的value列多于表的列了。
表有8列,但是你的value后面有9列,textbox1-8,其中,textbox3出现两次。
BookSirSwordsMan 2006-03-20
  • 打赏
  • 举报
回复
检查一下有没有字段是数字类型的,就像楼上说的,那个ID有可能是数字型的,猜测,呵呵,看一下其它字段有没有,有的话就不用加 ' 这个东西了



========================================================
我一定要超过他!!!!!!
做出我最强的东西!!!!!
再和他一比高下!!!!!!
========================================================

jietuan 2006-03-20
  • 打赏
  • 举报
回复
如果某个字段类型是数字 拿肯定是这样赋值的了 "values("+int.parse(this.textbox.text)+",......"

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧