2012-10-24 1 views
1

Java 프로젝트에 Netbeans 6.9와 함께 MS SQL Server 2005를 사용하고 있습니다.오류 : [Microsoft] [ODBC SQL Server Driverr] [SQL 서버] 삽입 오류 : 제공된 값의 열 이름 또는 개수가 테이블 정의와 일치하지 않습니다.

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()); 
     } 
: 나는 '이름'컬럼에 입력 된 이름을 저장하려면이 코드를 사용하고, 넷빈즈에 지금

http://i.stack.imgur.com/bwTuH.png

:

여기 (SSMS 2005 내부) 내 테이블 구조입니다 내가 이름을 프로젝트를 실행하고 입력 할 때

지금, 나는 다음과 같은 오류가 발생합니다 :

오류 : OD [마이크로 소프트] [ BC SQL Server Driverr] [SQL Server] Insert Error : 열 이름 또는 제공된 값 수가 테이블 정의와 일치하지 않습니다.

은 또한 다음과 같은 명령으로 삽입에 직접 열 이름을 사용하여 시도 :

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(); 
     } 

하지만 그 방법은이 오류 얻을 :

오류 : [마이크로 소프트] [ODBC SQL Serever을 드라이버] COUNT 필드 올바르지 않거나 구문 오류

마지막으로,이를 사용하여 시도 :

,433,785,

그리고이 오류가있어 :

오류 : 내가 잘못 곳

는 누구든지 나를 인도시겠습니까 일반 오류를?

답변

0

귀하의 사진에 따르면 어떤 열도 null 값을 허용하지 않습니다. 어떤 열에도 null 값을 전달하면 barf로 이동합니다. 따라서 모든 열에 값을 전달하면 다른 결과가 나타날 가능성이 큽니다.

+0

방금 ​​모든 열을 'Allow null'로 만들었지 만 프로그램에서 여전히 동일한 오류가 발생합니다. ( – gxtj

+0

마지막 추측 stmt.setString (1, username.getText()); Id는 Int이므로 아마도 stmt.setInt (0,1)이어야합니다. – awright18

+0

예, ID가 전달 된 첫 번째 매개 변수입니다.하지만 두 번째 매개 변수가 변수 인 경우 seInt를 사용하는 방법을 잘 모르겠습니다. .. : s – gxtj

관련 문제