2011-08-18 79 views
2

我有一個問題,因爲我不能插入到一個SQL Server數據庫:問題插入到一個SQL Server數據庫和Java

驅動程序:[微軟] [SQLServer 2000的驅動程序JDBC] [SQLServer的]

public int sendCabecera(String tpv, Date date, String time, int NumPers, int CodOfi) { 

    java.sql.DatabaseMetaData dm = null; 
    int result = 0; 

    try { 
     connection = this.getConnection(); 
     if (connection != null) { 
      dm = connection.getMetaData(); 

      Statement select = connection.createStatement(); 


      String sql="INSERT INTO TCabecerasSolicitudes(CodigoTPV, FechaYHora, Hora, NumeroPersonas, CodigoOficina) VALUES ('001','17/08/2011 16:00','De 16 a 17',0, '001');"; 

      select.execute(sql); 


//{.... catch ... etc } 

嗯,我已經嘗試所有執行更新和單獨執行,我總是het同樣的錯誤: 「無法插入NULL」這是第一個主鍵通常自動增量,所以我只是忽略它,但它不工作爲什麼?

非常感謝提前,

編輯:問題解決了,我變成了問題的關鍵不是自動增量

+0

請發表全定義。 – Jacob

+5

如果手動執行它,你確定SQL是否有效? JDBC應該大致等同於在Sql Server Management Studio窗口中執行相同的語句... –

+2

使用自動增量和起始值爲您的主鍵配置列。起始值的一個很好的例子是零。或者你讓cms爲它自己創建,使用UUID格式。 – reporter

回答

1

,你有你的TCabecerasSolicitudes表中的列定義,它似乎最有可能的爲NOT NULL,但未在您的插入語句中列出(即不是CodigoTPV, FechaYHora, Hora, NumeroPersonas, CodigoOficina之一)。

因爲你還沒有爲您的查詢欄提供的價值和它的NOT NULL,語句正在迅速增長。