当前位置: 代码迷 >> Java相关 >> lgdcky 进
  详细解决方案

lgdcky 进

热度:441   发布时间:2006-10-30 23:32:39.0
lgdcky 进

你可以看一下,这个就是NetBar的!

[此贴子已经被作者于2006-10-30 23:33:14编辑过]

搜索更多相关的解决方案: lgdcky  

----------------解决方案--------------------------------------------------------
楼主好厉害啊!这么快就找到错误了!
----------------解决方案--------------------------------------------------------
大概意思我是看明白了,我程序里的错误我也有点数了,只是DateBaseCls类的功能我看得有点含糊,能不能讲一下啊!
----------------解决方案--------------------------------------------------------

那个类是我专门做出来的数据库类,所有与数据库相连接的方法都在里面


----------------解决方案--------------------------------------------------------

你又那个类不明白,可以把代码贴出来,给你看下!


----------------解决方案--------------------------------------------------------

我按照你那DateBaseCls里的方法重写了个方法,可是当我打印这个数组时却是空的,不知道为什么!
我的代码如下:
public static ArrayList getCardId(Record record, EndRecordComputer eRecord,
Card card) {
ArrayList endCardIdList = new ArrayList();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
JOptionPane.showMessageDialog(null, ce, "错误",
JOptionPane.ERROR_MESSAGE);
}
try {
String url = "jdbc:odbc:NetBar";
String str = "select * from Record where Computer='" +
eRecord.getEndComputer() + "'";
Connection con = DriverManager.getConnection(url, "Record",
"123456");
Statement s = con.createStatement();
ResultSet rs = s.executeQuery(str);
while (rs.next()) {
record.setCardId(rs.getString("CardId"));
record.setComputerId(rs.getString("Computer"));
record.setBeginTime(rs.getString("BeginTime"));
record.setEndTime(rs.getString("EndTime"));
endCardIdList.add(record);
}
s.close();
con.close();
} catch (SQLException se) {
JOptionPane.showMessageDialog(null, se + "121212121212", "错误",
JOptionPane.ERROR_MESSAGE);
}

try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException ce) {
JOptionPane.showMessageDialog(null, ce, "错误",
JOptionPane.ERROR_MESSAGE);
}
try {
String url = "jdbc:odbc:NetBar";
String str = "select * from Card where Id='" +
eRecord.getEndComputer() + "'";
Connection con = DriverManager.getConnection(url, "Card",
"123456");
Statement s = con.createStatement();
ResultSet rs = s.executeQuery(str);
while (rs.next()) {
card.setId(rs.getString("Id"));
card.setPassword(rs.getString("Password"));
card.setBalance(rs.getInt("balance"));
card.setUserName(rs.getString("UserName"));
endCardIdList.add(card);
}
s.close();
con.close();
} catch (SQLException se) {
JOptionPane.showMessageDialog(null, se + "101010", "错误",
JOptionPane.ERROR_MESSAGE);
}

return endCardIdList;
}

这个代码里的数组为什么会是空的啊?


----------------解决方案--------------------------------------------------------

给你提个意见,你最好把你的数据库连接提取出来,每次做一个方法的时候你用st = getStatement();就可以了!你的代码写太多了!


----------------解决方案--------------------------------------------------------

谢谢,我会注意的!不过我想问一下为什么我的代码的方式是按你的那个样式写的可是为什么得到的数组却是空的呢?可是我让我单个的输出他却有我需要的值呢?


----------------解决方案--------------------------------------------------------
  相关解决方案