Java プロジェクトに MS SQL Server 2005 と Netbeans 6.9 を使用しています。
これが私のテーブル構造です(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();
}
そして、私はこのエラーを受け取りました:
エラー: 一般的なエラー
誰でも私が間違っている場所を案内してもらえますか?