我正在为我的 Java 项目使用带有 Netbeans 6.9 的 MS SQL Server 2005。
这是我的表结构(在 SSMS 2005 中):
http://i.stack.imgur.com/bwTuH.png
现在,在 Netbeans 中,我使用此代码片段将输入的名称保存到“名称”列中:
if(e.getSource().equals(submit))
{
try
{
String str="insert into TETRISUSERS values(?,'0')";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:java","sa", "123456");
PreparedStatement stmt=con.prepareStatement(str);
stmt.setString(1,username.getText());
stmt.executeUpdate();
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(name1,"Error : "+ex.getMessage());
}
现在,当我运行项目并输入名称时,出现以下错误:
错误:[Microsoft][ODBC SQL Server Driverr][SQL Server]插入错误:列名或提供的值的数量与表定义不匹配。
我还尝试在插入命令中使用直接列名,如下所示:
try
{
String str="insert into TETRISUSERS(ID,name,highscore) values(?,'0',?)";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:java","sa", "007007");
PreparedStatement stmt=con.prepareStatement(str);
stmt.setString(1,username.getText());
stmt.executeUpdate();
}
但是这样我得到了这个错误:
错误:[Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误
最后,我尝试使用这个:
try
{
String str="insert into TETRISUSERS(ID,name) values(?,'0')";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:java","sa", "007007");
PreparedStatement stmt=con.prepareStatement(str);
stmt.setString(1,username.getText());
stmt.executeUpdate();
}
我得到了这个错误:
错误:一般错误
谁能指导我哪里错了?