问题描述
我在数据库中建了一个表,名为:ID,含有id和number。id=001对应number=1001,002对应1002,003对应1003。然后在VS2012中建立控件如图所示:我的需求是:假设在textbox上输入id(001~003),如果id符合数据库中number=1001,那么点击BUTTON控件,将把数据库表中的number=1001更新保存为1000。我写的SQL语句是:stringsql=String.Format("updateIDsetnumber=replace(number,"1001","1000")whereid='"+textbox.Text.Tostring()+"');请各位朋友指点一下,给个源码最好,非常感谢。
解决方案
解决方案二:
"updateIDsetnumber='1000'whereid='"+textbox.Text+"'"
解决方案三:
"updateIDsetnumber='"+textbox2.text+"'whereid='"+textbox.Text+"'"
解决方案四:
引用2楼wind_cloud2011的回复:
"updateIDsetnumber='"+textbox2.text+"'whereid='"+textbox.Text+"'"
不行的
解决方案五:
是id对应number,
解决方案六:
如果id与number都是字符类型的话:stringsql=String.Format("updateIDsetnumber='"+textBox2.Text+"'whereid='"+textBox1.Text+"'");
解决方案七:
引用5楼wind_cloud2011的回复:
如果id与number都是字符类型的话:stringsql=String.Format("updateIDsetnumber='"+textBox2.Text+"'whereid='"+textBox1.Text+"'");
id&number我都设置的nvarchar我也只有一个textbox
解决方案八:
你可以用2个textbox,一个对应id,一个对应number,这样就可以
解决方案九:
需求看的头疼。修改那些满足以下两个条件的行:1.id列等于textBox输入值2.number列等于1001updateIDsetnumber='1000'whereid='“+textbox.Text+”‘andnumber='1001'
解决方案十:
stringsql=String.Format("updateIDsetnumber=replace(number,'1001','1000')whereID.id='{0}'",textbox.Text.Tostring());
为了看得清楚一些,我把SQL语句最后加了一个空格。SQL中字符串常量用单引号而不是双引号。既然使用了Fromat,就不要再用字符串连接这种很影响可读性的方法构造字符串。表名“ID",字段名”id"……我相信数据库能够分清哪个是表哪个是字段,但还是加上个“ID.”心里踏实一些。
解决方案十一:
看着有点拗口,首先是否可以理解:ID表中存在id和number两个字段,不同id对应可能相同的number?(Eg.number为1001对应的有id001、006)希望实现的效果是在textbox中填写id值,若填写的id值对应表中的number是1001,则点击button后修改该id对应的number为1000?如果这样的话,我的建议和8#是一样的。updateIDsetnumber='1000'whereid='"+Textbox.text+"'andnumber='1001'
解决方案十二:
1.既然使用string.format那就使用参数化的字符串咯:stringsql=String.Format("updateIDsetnumber={0}whereid='{1}'","1000",textbox.Text);2.把需求说明白些。你是想找到textbox上制定的id,然后更新它的number还是什么?3.需求弄彻底明白后在好好想怎么实现,一般不会用单个textbox来这么做。
解决方案十三:
number=replace(number,'1001','1000')这是在干啥?直接number='1000'不就完啦另外,你自己都没弄明白到底想怎么改,所以大家也只能乱出主意先把需求明确了再谈方法
解决方案十四:
一个update不是很简单吗?还搞那么多乱七八糟的。是用的啥数据库啊?