2016-08-17 56 views
0

,我發現了錯誤「無效字符值投」錯誤

net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc ::: 3.0.6數據異常:用於鑄鐵無效字符值

當我運行這段代碼:

package aoa; 
    import java.sql.*; 
    public class Aoa { 


     public static void main(String[] args) { 
      Connection cn; 
     Statement st; 
     ResultSet re; 
     String ID ="username"; 
     String NAME="password"; 


     try{ 

     Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 
     cn=DriverManager.getConnection("jdbc:ucanaccess://C:\\Users\\MUHAMMAD SHAHAB\\STUD1.accdb"); 
     st = cn.createStatement(); 
     String q = "INSERT INTO STUD1 ([Id], [Address]) VALUES (?, ?)"; 
    PreparedStatement pst = cn.prepareStatement (q); 
    pst.setString(1, "a"); 
    pst.setString(2, "b"); 
    pst.executeUpdate(); 

     System.out.println("inserted"); }  

     catch(ClassNotFoundException | SQLException e) 
     { 
      System.out.println(e); 
     } 

    }  
    } 

我在做什麼錯?

+0

也許'id'不是一個字符串?另外如何發佈你的完整stacktrace,所以我們可以看到錯誤是從哪裏扔出 –

+0

好吧,我只是要發佈完整的stacktrace @Scary Wombat – Mcolo

+0

請同時顯示您的'STUD1'表的定義 –

回答

2

您將得到錯誤

net.ucanaccess.jdbc.UcanaccessSQLException:UCAExc ::: 3.0.6數據異常:用於鑄鐵

無效字符值,如果你嘗試指派當字符串值不能轉換爲數字時,通過setString將數值轉換爲數字列。在你的情況下,[ID]列是幾乎可以肯定的數字,但

pst.setString(1, "a"); 

試圖賦值「a」到該列,而「一」不能轉換爲數字。

+0

thanx @ Gord Thompson。現在正在工作 – Mcolo