求教下面代码怎么会调用不了getresultSet~~~~
public class Link {
protected static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
protected static String dbUrl = "jdbc:sqlserver://localhost:1433;"
+ "DatabaseName=Student;SelectMethod=Cursor";
protected static String dbUser = "sa";
protected static String dbPwd = "123";
protected static String second = null;
public static Connection conn = null; static {
try {
if (conn == null) {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
}
} catch (Exception ee) {
ee.printStackTrace();
}
}
static ResultSet DealwithDB(String Sql) throws SQLException
{
// Statement stm = conn.createStatement();
ResultSet rs = conn.getResultSet(Sql);
return rs;
}
}
public class Link {
protected static String dbClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
protected static String dbUrl = "jdbc:sqlserver://localhost:1433;"
+ "DatabaseName=Student;SelectMethod=Cursor";
protected static String dbUser = "sa";
protected static String dbPwd = "123";
protected static String second = null;
public static Connection conn = null; static {
try {
if (conn == null) {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
}
} catch (Exception ee) {
ee.printStackTrace();
}
}
static ResultSet DealwithDB(String Sql) throws SQLException
{
// Statement stm = conn.createStatement();
ResultSet rs = conn.getResultSet(Sql);
return rs;
}
}
Statement stm = conn.createStatement();
ResultSet rs = stm .executeQuery(Sql);
看看Connection这个接口中, 有没有getResultSet这个方法....
额·用这语法出现如下错误。跪求大虾解决}
static ResultSet DealwithDB(String Sql) throws SQLException
{
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(Sql);
return rs;
} String Uname = username.getText();
String Upwd = userpwd.getText();
Link link = new Link();
String Sql = " select * from Student where Sno = '"+Uname+"'" ;
ResultSet rs = link.DealwithDB(Sql);
String Password = rs.getString("Spwd").toString().trim();
com.microsoft.sqlserver.jdbc.SQLServerException: 结果集没有当前行。
// TODO add your handling code here:
String Uname = username.getText();
String Upwd = userpwd.getText();
String Sql = " select * from Student where Sno = '"+Uname+"'" ;
try {
if (conn == null) {
Class.forName(dbClassName).newInstance();
conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
}
} catch (Exception ee) {
ee.printStackTrace();
}
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(Sql);
rs.first();
String Password = rs.getString("Spwd").toString().trim();
rs.close();
if(Password.equals(Upwd))
{
JOptionPane.showMessageDialog(null, "成功登录");
}else
{
JOptionPane.showMessageDialog(null, "帐号密码不正确");
}
}错误原因:
com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作。真的搞不懂了。
下面应该加个 rs.next(); 吧
first()方法 错了 应该用 next() .
如果想用 first() 应该这样
Statement stm =
conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE ,ResultSet.CONCUR_READ_ONLY );
ResultSet rs = stm.executeQuery(Sql);
rs.first();创建一个 可可滚动的 ResultSet对象
其实只要结果集类型不是 ResultSet.TYPE_FORWARD_ONLY 就行
而默认创建的就是 TYPE_FORWARD_ONLY 类型的具体的情况 楼主 再查阅相关 资料