[Microsoft][ODBC SQL Server Driver][SQL Server]从字符串向 datetime 转换时失败。

import java.sql.*;
import java.util.Scanner;

public class 图书管理 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("创建驱动成功");
Connection con=DriverManager.getConnection("jdbc:odbc:book","sa","");
System.out.println("连接数据库成功");
Statement stmt=con.createStatement();//数据库能与SQL语句互换
//添加图书
Scanner yi=new Scanner(System.in);
System.out.print("请输入一个需要添加的书名:");
String h=yi.next();
System.out.print("请输入作者名:");
String g=yi.next();
System.out.print("请输入出版日期(格式:xxxx-xx-xx)");
String j=yi.next();
System.out.print("请输入价格:");
String f=yi.next();
System.out.print("请输入数量");
String v=yi.next();
String sql="Insert into books(bookname, writer, publicationday, price, number) Values('h','g','j','f','v')";
stmt.executeUpdate(sql);
System.out.println("添加成功");
}
}
高手帮我看看那里错了阿

恩 首先,你确定数据库里面的bookname, writer, publicationday, price, number都是varchar类型?
其次,数据库连接用完最好关闭。
最后,还是不行的话在“添加成功”后面---(是程序最后,别误解了)——添加System.exit(0);
希望可以帮助到你,望采纳
ps:根据你题目的提示,应该是publicationday出错了,你输入的是string,但是却要到数据库保存成date,其他数据格式最好也检查一遍
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-12
是不是因为publicationday这个字段是datetime类型的,而你插入的是'J'是字符串
相似回答