急急!有段简单的代码,请高手进来看看~~~ create a new statement from a new db connection 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 takecare 能说再详细点吗?我很菜的,呵呵 <% String sql="select * from re_"+xibie+"_"+nianji+"_"+xueqi;ResultSet rs3=stmt.executeQuery(sql);Statement stmt1=DbConnect.createStatement() ;java.sql.ResultSetMetaData m = rs3.getMetaData();int nCols = m.getColumnCount(); for(int i=2;i<nCols;i++) { String strCol=m.getColumnName(i+1); if (strCol.equals(kecheng2)) { strCol=m.getColumnName(i+2); i=i+1; } int value=stmt1.executeUpdate("alter table temp add "+strCol+" int"); }%> 问题1:按照你的逻辑,并没有将不等于kecheng2的列添加到了 temp 表中,你的 if (strCol.equals(kecheng2)) { strCol=m.getColumnName(i+2); i=i+1; }语句有问题。问题2:当第二次调用 stmt.execute 时rs3被关闭,因为所有stmt的execute 方法都隐式地关闭当前活动 ResultSet对象。你可以先把所有的列名先存放到一个 Vector 里面,然后再调用executeUpdate 就没事了。 帮你重写了ResultSet rs3=stmt.executeQuery(sql);String kecheng2="aaaaaaa";java.sql.ResultSetMetaData m = rs3.getMetaData();int nCols = m.getColumnCount();String strCol[]=new String[nCols];String tempSql="";for(int i=0;i<nCols;i++){ strCol[i]=m.getColumnName(i+1).trim();} for(int i=0;i<nCols;i++){ if (strCol[i].equalsIgnoreCase(kecheng2)) continue; tempSql+=", "+strCol[i]+ " int"; } tempSql=tempSql.substring(1); int value=stmt.executeUpdate("alter table temp add "+tempSql);参照着改再看看 jsp 两次向数据库提交的问题 linux6.0的图形化界面怎么进不去??? 请高手帮忙指点一下AJAX 入道新手------用JSP把数据库表导出来怎么实现. 急需一个项目 如何配置servlet自动运行 用java.util.zip包解压zip文件时中文文件名的问题 菜鸟想连数据库,急!!在线等。 为什么不论是哪种编码都是乱码? 请不要回避我这个菜鸟的问题,十分感谢。(菜鸟们都想问的) 哪位大虾帮着看一看这段代码。 我检了N遍。一个简单的SESSION。 jsp里如何調上面的函數呢,我這樣寫有錯的,如何寫才正確呢???
String sql="select * from re_"+xibie+"_"+nianji+"_"+xueqi;
ResultSet rs3=stmt.executeQuery(sql);
Statement stmt1=DbConnect.createStatement() ;
java.sql.ResultSetMetaData m = rs3.getMetaData();
int nCols = m.getColumnCount();
for(int i=2;i<nCols;i++)
{
String strCol=m.getColumnName(i+1);
if (strCol.equals(kecheng2))
{
strCol=m.getColumnName(i+2);
i=i+1;
}
int value=stmt1.executeUpdate("alter table temp add "+strCol+" int");
}%>
{
strCol=m.getColumnName(i+2);
i=i+1;
}
语句有问题。问题2:当第二次调用 stmt.execute 时rs3被关闭,因为所有stmt的execute 方法都隐式地关闭当前活动 ResultSet对象。你可以先把所有的列名先存放到一个 Vector 里面,然后再调用executeUpdate 就没事了。
String kecheng2="aaaaaaa";java.sql.ResultSetMetaData m = rs3.getMetaData();
int nCols = m.getColumnCount();
String strCol[]=new String[nCols];
String tempSql="";
for(int i=0;i<nCols;i++)
{
strCol[i]=m.getColumnName(i+1).trim();
}
for(int i=0;i<nCols;i++)
{
if (strCol[i].equalsIgnoreCase(kecheng2))
continue;
tempSql+=", "+strCol[i]+ " int";
}
tempSql=tempSql.substring(1); int value=stmt.executeUpdate("alter table temp add "+tempSql);参照着改再看看