社区
Web 开发
帖子详情
为什么取不到值?
jlsyyz01
2010-02-02 01:07:33
String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String sql="update tab set '+a+'; // 想把gz字段值更新成5
con1.executeUpdate(sql); //执行后gz字段值更新不成功
如何加以改正?
...全文
213
28
打赏
收藏
为什么取不到值?
String b="5"; String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段 String sql="update tab set '+a+'; // 想把gz字段值更新成5 con1.executeUpdate(sql); //执行后gz字段值更新不成功 如何加以改正?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hnnxzhoujia
2010-02-05
打赏
举报
回复
特殊字符,使用转义符。
鹰视狼顾
2010-02-03
打赏
举报
回复
这个东西你可以syso下试试嘿。。。。
鹰视狼顾
2010-02-03
打赏
举报
回复
String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String sql="update tab set "+a+""; // 想把gz字段值更新成5
con1.executeUpdate(sql); //执行后gz字段值更新不成功
应该是这个样子滴!!!
doniks
2010-02-03
打赏
举报
回复
[Quote=引用楼主 jlsyyz01 的回复:]
String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String sql="update tab set '+a+'; // 想把gz字段值更新成5
con1.executeUpdate(sql); //执行后gz字段值更新不成功
如何加以改正?
[/Quote]
String b = "5";
String a = "gz= "+b;
String sql = "update tab set " + a;
con1.executeUpdate(sql);
魔法骚年小成
2010-02-02
打赏
举报
回复
学习学习
jlsyyz01
2010-02-02
打赏
举报
回复
lovingpig 如我按你的这个方法实现,我是实现从Excel表中循环读值给 数组a, PreparedStatement ps = con.prepareStatement(sql); 是写在循环体外吧?能明白我的意思吗?你的QQ号是多少?
String sql = "update tab set gz1=?,gz2=? where xh='"+xh+"'";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,a[i]);
ps.executeQuery();
lovingpig
2010-02-02
打赏
举报
回复
不明白楼主下面两句的用意:
String b0="1";
String b1="2";
用楼主的代码 sql生成的是
update tab set gz1=b0,gz2=b1
如果楼主想把值更新成b0 b1那就要加引号
但是楼主 String b0="1"; String b1="2"; 这两句代码着实诡异 不知道想干嘛
lovingpig
2010-02-02
打赏
举报
回复
如果不固定那就没有办法
tring cx="gz1=,gz2=";
String[] myArr = cx.split( ",");
String aa="";
for(int i=0;i < myArr.length;i++)
{
aa+=myArr[i]+"
'
b"+String.valueOf(i)+"
'
,";
}
aa = aa.substring(0,aa.length() - 1);
String b0="1";
String b1="2";
String sql="update tab set "+aa;
jlsyyz01
2010-02-02
打赏
举报
回复
[Quote=引用 16 楼 lovingpig 的回复:]
楼主你的for循环只是在拼字符串吧 为什么要把execute语句也放进去呢?
还有你的代码写的太纠结了 试试下面的代码
String sql = "update tab set gz1=?,gz2=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,"1");
ps.setString(2,"2");
ps.executeQuery();
[/Quote]
其实我的赋值变量也是拼起来的,因为要更新的字段也是不固定的。有好的方法吗
awusoft
2010-02-02
打赏
举报
回复
提供QQ远程吧
jlsyyz01
2010-02-02
打赏
举报
回复
[Quote=引用 16 楼 lovingpig 的回复:]
楼主你的for循环只是在拼字符串吧 为什么要把execute语句也放进去呢?
还有你的代码写的太纠结了 试试下面的代码
String sql = "update tab set gz1=?,gz2=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,"1");
ps.setString(2,"2");
ps.executeQuery();
[/Quote]
对是在拼字符串呀,如果按照我的思路应如何改呢?
lovingpig
2010-02-02
打赏
举报
回复
楼主你的for循环只是在拼字符串吧 为什么要把execute语句也放进去呢?
还有你的代码写的太纠结了 试试下面的代码
String sql = "update tab set gz1=?,gz2=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1,"1");
ps.setString(2,"2");
ps.executeQuery();
awusoft
2010-02-02
打赏
举报
回复
不知道你这样写....值呢?
String cx="gz1=,gz2="; //由用户自定得来的字符串
String[] myArr = cx.split( ","); //拆分
String aa="";
for(int i=0;i < myArr.length;i++)
{
aa+=myArr[i]+" '" +"b"+String.valueOf(i)+"' "+",";
}
aa = aa.substring(0,aa.length() - 1); //去掉最后的逗号
String sql="update tab set "+aa; //生成sql
jlsyyz01
2010-02-02
打赏
举报
回复
没办法贴源码吧,说不清楚了,看看哪里的错。刚才贴错了
String cx="gz1=,gz2="; //由用户自定得来的字符串
String[] myArr = cx.split( ","); //拆分
String aa="";
for(int i=0;i < myArr.length;i++)
{
aa+=myArr[i]+"b"+String.valueOf(i)+",";
}
aa = aa.substring(0,aa.length() - 1); //去掉最后的逗号
String b0="1";
String b1="2";
String sql="update tab set "+aa; //生成sql
con1.executeUpdate(sql); //执行后gz1,gz2字段值更新不成功
jlsyyz01
2010-02-02
打赏
举报
回复
没办法贴源码吧,说不清楚了,看看哪里的错。
String cx="gz1=,gz2="; //由用户自定得来的字符串
String[] myArr = cx.split( ","); //拆分
for(int i=0;i < myArr.length;i++)
{
String aa="";
aa+=myArr[i]+"b"+String.valueOf(i)+",";
aa = aa.substring(0,aa.length() - 1); //去掉最后的逗号
String b0="1";
String b1="2";
String sql="update tab set "+aa; //生成sql
con1.executeUpdate(sql); //执行后gz1,gz2字段值更新不成功
awusoft
2010-02-02
打赏
举报
回复
update tab set gz='"+b+"'
你说输出这个???我不太相信一个"不是那么容易输出的
awusoft
2010-02-02
打赏
举报
回复
要的就是这个啊
jlsyyz01
2010-02-02
打赏
举报
回复
sql 输出后是 update tab set gz='"+b+"'
变量与字符串混淆了,变量都当字符输出了。
yuzhangqu
2010-02-02
打赏
举报
回复
楼上的都回答得差不多了,我总结一下。
一、gz字段的类型可能是数字,那么String a="gz='"+b+"'"; 应该改成String a="gz="+b; 否则造成类型不匹配。
二、String sql="update tab set '+a+'; 应该改成String sql="update tab set "+a;
三、你的sql相当危险,没有任何条件语句。如果成功,将更新所有数据的gz字段。
四、最后,请确认table和字段的名字拼写正确。
awusoft
2010-02-02
打赏
举报
回复
[Quote=引用 1 楼 crazylaa 的回复:]
String sql="update tab set '+a+'; // 想把gz字段值更新成5
---->
String sql="update tab set "+a; // 想把gz字段值更新成5
其实你在
con1.executeUpdate(sql); //执行后gz字段值更新不成功
前面加一句
System.out.println(sql);看看sql就知道是多了单引号额
[/Quote]
这个应该是可以的啊
String b="5";
String a="gz='"+b+"'"; //让用户自定义得来的要更新的字段
String str="update tab set ";
str=str+a;
看看有没有报错啊.打印一下SQL测试一下
加载更多回复(8)
JSP中用request.setAttribute()后,在action中为什么
取
不到
值
?
不能这么请求。 因为页面上的request 和使用form提交的request 请求 不是一个对象。 二丶: request 只在当前页面有效 正确写法应该是放在form里 <form action="WebPay.do" name="webPayForm" onsubmit="return _...
@RequestBody
取
不到
值
?报请求体为空怎么办
因为是post请求,所以 request.getParamter(“data”)是获
取
不到
的,只能通过 request.getInputStream来获
取
。获
取
源码如下: public String getParam(HttpServletRequest request) throws IOException { ...
为什么 wx.getStorageSync获
取
不到
值
??
很简单一行代码,就是获
取
不到
值
。 为什么,其实很简单,原先就没有保存进去。 保存的代码是: wx.setStorageSync({ key: 'OPENID', data: openId }) 原先是 wx.setStorage, 我觉得不如同步好使,往后边加了...
关于自定义的data-*属性有时候
取
不到
值
的问题 2
当时也是
取
不到
自定义属性的
值
然后用 $(this).attr("data-testcount") 成功获
取
到
值
这次要说的则是写法上的的问题 简单来说就是 data- 后面跟的单词不能够大写字母 (excuse me???) 不知道是偶然还是...
JavaWeb EL表达式 key为数
值
Map
取
不到
值
JavaWeb JSTL EL Map
取
不到
值
当后台传出一个Map JSP 不能通过map[item.key]
取
出, 要么把Map改成Map 因为JSTL会把Integer,Byte,Short,Charactor都转成Long,这样就
取
不到
值
。 要么重新从数据库的查询结果里传入新...
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章