当前位置:编程学习 > C#/ASP.NET >>

帮忙看一段后台的SQL语句

我想要执行修改操作  但是我用SQL写 提示我  id不能转成INT型     我数据库里的tal_id,tal_age都是int型
在后台的SQL语句   这句应该怎么写

update talents set tal_id=" + id +",tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "'  where  tal_id  = '" + id + "'" --------------------编程问答-------------------- 嗯,你的这个tal_id=" + id +"里面的id应该是一个字符串类型吧,在此之前在先转换成int类型才可以呀。 --------------------编程问答-------------------- --------------------编程问答-------------------- 怎么转啊 --------------------编程问答--------------------
Convert.ToInt32(id);
--------------------编程问答-------------------- "update talents set tal_id=" + id +",tal_name=N'" + name + "',tal_age="+ age +",tal_sex=N'" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr =N'" + pr + "' where tal_id = '" + id + "'" --------------------编程问答--------------------

int i= Convert.ToInt32(id);

update talents set tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "' where tal_id = '" + i + "'"
--------------------编程问答-------------------- int i= Convert.ToInt32(id);

update talents set tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "' where tal_id = '" + i + "'" --------------------编程问答-------------------- 无语,各位这么明显的问题都没有看出来?
where语句的where tal_id = '" + i + "'"这里出了问题/
要改成where tal_id = " + i
。。。 --------------------编程问答-------------------- 单引号去掉不就可以了嘛

楼主这样的更新没有问题嘛?
你不如下个代码生成器弄这个东西。 --------------------编程问答-------------------- adfadfad --------------------编程问答-------------------- 注意你的id是不是标识符
然后把id的类型转换一下 --------------------编程问答-------------------- 第一眼看上去就看到where那里不对,应该是where tal_id =  id 
第二眼看上去又看到id这个东西,哪里来的?不是int类型就转一下,
sql 中:convert(int,id)
c#中:int.parse(id) --------------------编程问答-------------------- 讨厌的类型转换问题 

update talents set tal_id=" + id +",tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "' where tal_id = '" + id + "'"
怎么还更新id 呢?? id不是做了条件了么

关于复杂 sql语句的问题
以及 sql初学者 在程序中拼接sql语句时
建议在调试状态下 取到 实际语句在数据库端执行
--------------------编程问答-------------------- 单步执行,看看执行之前的语句,然后放到sql里面运行就知道错在哪里了 --------------------编程问答-------------------- 设断点调试,把SQL取出来,去调试一下。 --------------------编程问答-------------------- int i= Convert.ToInt32(id);或者int i=int.Prase(id);转换一下。估计你的id在后台程序中给赋值成string类型了。不妨设置断点调试一下看,走到这个语句后,取出sql语句看看,到底是什么,如果看不出来放在数据库中看能否执行 --------------------编程问答-------------------- update talents set tal_id= id ,tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "' where tal_id = id --------------------编程问答-------------------- update talents set tal_id=" + id +",tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "' where tal_id = '" + id + "'"

换成string sql =string.Format(
"update talents set tal_id='{0}',tal_name='{1}',tal_age='{2}',tal_sex='{3}',tal_phone='{4}',tal_ic='{5}',tal_pr ='{6}' where tal_id = '7'",id ,name,age,sex ,phone ,ic ,pr ,id   );

这次是我最有耐心的一次 --------------------编程问答-------------------- update talents set tal_id=" + Convert.ToInt32(id)+",tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "' where tal_id = '" + Convert.ToInt32(id) + "'" --------------------编程问答-------------------- Convert.ToInt32(id)+", --------------------编程问答-------------------- update talents set tal_id= id ,tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "' where tal_id = id

把tab_id 当成字符串赋值用肯定不行了 --------------------编程问答-------------------- --------------------编程问答-------------------- string sql =string.Format(
"update talents set tal_id={0},tal_name='{1}',tal_age={2},tal_sex='{3}',tal_phone='{4}',tal_ic='{5}',tal_pr ='{6}' where tal_id = '{7}'",id ,name,age,sex ,phone ,ic ,pr ,id   ); --------------------编程问答-------------------- update talents set tal_id=" + id +",tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "' where tal_id = '" + id + "'",前面id是int,后面怎么是字符串了 --------------------编程问答-------------------- int i= Convert.ToInt32(id);

update talents set tal_name='" + name + "',tal_age="+ age +",tal_sex='" + sex + "',tal_phone='" + phone + "',tal_ic='" + ic + "',tal_pr ='" + pr + "' where tal_id = '" + i + "'"

--------------------编程问答-------------------- string.formart 去拼装吧 --------------------编程问答-------------------- int i= Convert.ToInt32(id); --------------------编程问答-------------------- sqlserver 可以自动转的呀???
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,