[Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误public boolean saveBook(Book bookInfo){
boolean result = false;
try {
conn = DriverManager.getConnection("jdbc:odbc:LibraryMarket","","");
ps = conn.prepareStatement("INSERT INTO info_book(acode,acodename,"+
"cidsys,cnum,cbooknum,cusernum,cbookname,cedition,mdprice,"+
"cauthor,cframe,ckb,dupdate,nif,minzk,minprice,mxszk,"+
"mxsprice,cpressdate,cksname) "+
"VALUES(?,?,?,?,?,?,?,?,?,?,?,?,CONVERT(smalldatetime,?,100),?,?,?,?,?,?,?)");

ps.setString(1, bookInfo.getAcode());
ps.setString(2, bookInfo.getAcodename());
ps.setString(3, bookInfo.getCidsys());
ps.setString(4, bookInfo.getCnum());
ps.setString(5, bookInfo.getCbooknum());
ps.setString(6, bookInfo.getCusernum());
ps.setString(7, bookInfo.getCbookname());
ps.setString(8, bookInfo.getCedition());
ps.setDouble(9, bookInfo.getMdprice());
ps.setString(10, bookInfo.getCauthor());
ps.setString(11, bookInfo.getCframe());
ps.setString(12, bookInfo.getCkb());
ps.setString(13, bookInfo.getDupdate());
ps.setInt(14, bookInfo.getNif());
ps.setDouble(15, bookInfo.getMinzk());
ps.setDouble(16, bookInfo.getMinprice());
ps.setDouble(17, bookInfo.getMxszk());
ps.setDouble(18, bookInfo.getMxsprice());
ps.setString(10, bookInfo.getCpressdate());
ps.setString(20, bookInfo.getCksname());
System.out.println(ps.toString());
ps.executeUpdate();
result = true;
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
   if(ps!=null) ps.close();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if(conn!=null)conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return result;
}
public static void main(String[] args){
DBManager db = new DBManager();
Book bookInfo = new Book("code","codename","cidsys","cnum","booknum",
"usernum","bookname","edition",100,"author","frame","ckb",
"8 16 2000 11:50AM",1,1,100,2,200,"press","ksname");
db.saveBook(bookInfo);
}
另外:关于smalldatetime转换,要转换的字符串都可以是那些格式呢?我自己试了试,好像只有"8 16 2000 11:50AM"可以有其他方法吗?