您的位置:程序门 -> java -> j2ee / ejb / jms



初学者百分求助小小问题,,,


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


初学者百分求助小小问题,,,
发表于:2007-06-20 14:39:47 楼主
我想写一个记数器的方法,就是一调用这个方法,就可以给相应的表名上的字段值加1,数据库里的字段是varchar(50)类型的,我这么写不正确
public   void   count(string   tablename,   string   id,string   field)   {
try   {
 
system.out.println(tablename);
system.out.println(field);
ps=con.preparestatement( "update   "+tablename+ "   set   "+field+ "= "+field+1+ "   where   id=? ");
  
ps.setstring(1,   id);
//system.out.println(string.valueof(integer.parseint(field)+1));

ps.EXECute();
}   catch   (sqlexception   e)   {
//   todo   auto-generated   catch   block
e.printstacktrace();
}finally   {
发表于:2007-06-20 14:56:391楼 得分:0
ps=con.preparestatement( "update   "+tablename+ "   set   "+field+ "= "+field+1+ "   where   id=? ");
field+1   这里有问题
发表于:2007-06-20 15:18:092楼 得分:0
数据库字段是varchar(50)也没关系,取出来的时候转为int   或   long   型,
再加1,
之后再放入数据库中。
发表于:2007-06-20 15:18:283楼 得分:0
有什么提示?是报错还是怎么样
发表于:2007-06-20 17:23:144楼 得分:0
ps=con.preparestatement( "update   "+tablename+ "   set   "+field+ "= "+field+1+ "   where   id=? ");
你这句sql是什么啊??
update   tablename   set   field   =   field   +   1   where   id   =   ?;

我想你这个表中的字段不会是一直在变的吧??   怎么字段名会是field呢??
你每次给这个字段加一,下次就不是这个字段了,而是field+1字段啊。。。难道这个字段是动态字段吗??

如果不是肯定是要出错的。。你传来的field是字段名还是字段值??
字段名的话,先找出字段值再加1,怎么是字段名+1呢?
字段值的话,字段名可是会变的。。。想想看?
发表于:2007-06-20 17:30:105楼 得分:0
别偷懒啊,你可以先把当前的field   select出来,然后将field转型成整型,然后加一以后再执行

ps=con.preparestatement( "update   "+tablename+ "   set   "+field+ "= ' "+newfield+ " '   where   id=? ");

其中newfield就是那个加一之后的整型值


快速检索

最新资讯
热门点击