首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

access数据库 查询值的数目与目标字段中的数目不同解决办法

2012-01-15 
access数据库 查询值的数目与目标字段中的数目不同OperateDatabase dbnew OperateDatabase()//连接数据

access数据库 查询值的数目与目标字段中的数目不同
OperateDatabase db=new OperateDatabase(); //连接数据库的函数
String sql="SELECT * FROM 读者借阅信息表 ";
ResultSet rs=db.Query(sql);
OperateDatabase t=new OperateDatabase();
try
{
boolean flag=rs.next();
while(flag){
String a=rs.getString("借阅日期");//借书时间
int c=rs.getInt("可借阅天数");
String book=rs.getString("图书名称");
int day=getQuot(b,a); //这个函数没问题,就是返回当前时间和借书时间之间的天数
  if(c-day<0){ //如果现在的天数大于可借天数,那么就是过期了
String sql2="INSERT INTO 读者借阅信息表 (逾期天数) VALUES(" +(day-c) + ")";
t.Insert_Delete(sql2);//插入
String sql1 = "INSERT INTO 逾期信息表(借书证号,姓名,学号,图书名称,图书编号,出版社,作者,续借次数,借阅日期,逾期天数)" +" VALUES('"+ rs.getString("借书证号") + "','" + rs.getString("姓名") + "','" +rs.getString("学号") + "','" + rs.getString("图书名称") + "','" + rs.getString("图书编号") + "','"+ rs.getString("出版社") + "','" + rs.getString("作者")+ "'," + rs.getInt("续借次数") +",'" + a+"',"+(day-c)+ ");";
t.Insert_Delete(sql1);//添加记录}
flag=rs.next();
}
t.close();
}catch(SQLException g){
System.out.println("E Code" + g.getErrorCode());
  System.out.println("E M" + g.getMessage());
}  

Access数据库的设置是:
逾期信息表
ID(自动编号),借书证号,学号,姓名,图书名称,图书编号,出版社,作者,续借次数,借阅日期,逾期天数
(续借次数和逾期天数是数字,其他都是文本形式)
读者借阅信息表
ID(自动编号),借书证号,学号,姓名,图书名称,图书编号,出版社,作者,可借阅天数,借阅日期,归还日期,续借次数,逾期天数
(可借阅天数,续借次数和逾期天数是数字,其他是文本形式)

运行错误是:java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] 查询值的数目与目标字段中的数目不同。
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at tushu.OperateDatabase.Insert_Delete(OperateDatabase.java:32)
at tushu.Overdue.<init>(Overdue.java:48)
at tushu.Overdue.main(Overdue.java:76)
Exception in thread "main" java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(Unknown Source)
at java.text.DateFormat.parse(Unknown Source)
at tushu.Overdue.getQuot(Overdue.java:66)
at tushu.Overdue.<init>(Overdue.java:35)
at tushu.Overdue.main(Overdue.java:76)

麻烦高手们帮帮忙,后天就得交了,实在是不知道哪错了。谢谢大家了~~

[解决办法]
检查一下SQL语句有没问题
[解决办法]
应该是SQL语句问题

热点排行