2011-05-28 115 views
0

我有這些列的表:C#訪問插入新的數據表自動編號

PersonID AutoNumber PrimaryKey 
TCKimlikNo Number 
PersonName Text 
PersonSurname Text 
Address Text 
Birthdate Text 
CategoryID Number 

當我嘗試插入我使用這個查詢從C#值:

INSERT INTO Person(TCKimlikNo, PersonName, PersonSurname, Adress, BirthDate, CategoryID) 
VALUES(@tcKimlikNo, @personName, @personSurname, @adress, @birthDate, @categoryId) 

但說:

「的Microsoft Access設置1個 字段設置爲null由於類型轉換 失敗,這沒有添加0條記錄(s) 到表中由於關鍵違規,0 記錄(s)由於鎖定違規,和 0條記錄(s)由於驗證規則 違規。

我認爲由於該自動編號列出現錯誤。試圖插入空值的訪問,但字段不會讓它。在SQL中,這個查詢完美地工作。但Access只是令人討厭。

回答

1

NULL值是由於類型轉換問題。很可能您將數據傳遞到無法通過Access轉換爲您所期望的數據類型的某個字段。我猜想你正在傳遞一個值到CategoryID而不是轉換爲正確的數字。這也可能是TCKimlinkNo字段。我相信如果字符串字段對於傳入的值來說太短,它會截斷它們,所以我懷疑這是問題所在。

此外,不要忘記檢查您的號碼字段的大小。您輸入的號碼是否大於允許的號碼?當您期待整數時,您是否發送小數據?

自動編號也不會,除非你試圖寫它(你似乎沒有做的問題。

+0

我再次擡頭,問題是「TCKimlikNo」一欄,即時通訊試圖插入一個數字,如「123456789012」,對於該列來說太大了,所以它給了我錯誤信息。 感謝您的回答。 – 2011-05-28 21:41:30