81,092
社区成员
发帖
与我相关
我的任务
分享
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
//你的数据库的
String user="sa";
String password="1234
Connection con= DriverManager.getConnection(url,user,password);
Statement stmt2=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Statement stmt1=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql5="select * from dbo.t_OCMS where f_contractNO='"+f_contractNO+"' ";
ResultSet rs5=stmt2.executeQuery(sql5);
out.print(rs5.next());
if(rs5.next())
{
stmt2.executeUpdate(sqlString);
out.print(rs5.next());
}
else
{
stmt2.executeUpdate(sqlString2);
}
con.close();
}
catch(SQLException e1)
{
out.print("SQL异常");
}
ResultSet rs5=stmt2.executeQuery(sql5);out.print(rs5.next());
if(rs5.next())
{ stmt2.executeUpdate(sqlString); out.print(rs5.next()); } else { stmt2.executeUpdate(sqlString2); }
出现楼主这种情况,问题原因在于out.print(rs5.next()); 如果只有一行,那么这句代码将会使游标下移。再进行if(rs5.next())判断时,因为前一句代码已经使游标移到最后一行,所以这里始终是false。
这才是根本原因。[/quote]
大哥还帮api 翻译了一遍,说的不错。我理解是只有一条数据,游标上面一个out 之后,rs5就会false走到下面的去了。
new String(param.getBytes("iso8859-1"), "UTF-8")
ResultSet rs5=stmt2.executeQuery(sql5);out.print(rs5.next());
if(rs5.next())
{ stmt2.executeUpdate(sqlString); out.print(rs5.next()); } else { stmt2.executeUpdate(sqlString2); }
出现楼主这种情况,问题原因在于out.print(rs5.next()); 如果只有一行,那么这句代码将会使游标下移。再进行if(rs5.next())判断时,因为前一句代码已经使游标移到最后一行,所以这里始终是false。
这才是根本原因。<%@ page contentType="text/html;charset=utf-8" %>
<%@ page import="java.sql.*" %>
<%!
public String codeToString(String str)
{//处理中文字符串的函数
String s=str;
try
{
byte tempB[]=s.getBytes("utf-8");
s=new String(tempB);
return s;
}
catch(Exception e)
{
return s;
}
}
%>
<%//接收客户端提交的数据
String f_chargetime=codeToString(request.getParameter("f_chargetime"));