c#访问使用自动编号将新数据插入表中

时间:2011-05-28 21:29:44

标签: c# ms-access

我有一个包含这些列的表:

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条记录   由于密钥违规而到桌面,0   由于锁定违规而记录的   由验证规则引起的0条记录   违反“。

我认为由于该自动编号列而发生错误。访问尝试向其插入空值,但字段不会让它。在SQL中,此查询完美运行。但Access只是令人讨厌。

1 个答案:

答案 0 :(得分:1)

NULL值是由于类型转换问题。很可能您将数据传递到您的某个字段中,这些字段无法通过Access转换为它所期望的数据类型。我猜你正在传递一个没有转换为正确数字的CategoryID的值。对于TCKimlinkNo字段也可以这样。我相信如果字符串字段对于传入的值来说太短,它只会截断它们,所以我怀疑这是问题。

另外,不要忘记检查您的号码字段的大小。您输入的号码是否大于允许的号码?您是否在预期整数时发送十进制数据?

自动编号不会成为问题,除非您尝试写入它(您似乎没有这样做。

相关问题