首页 文章

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

提问于
浏览
0

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

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条记录由于违反了验证规则 . “

我认为由于该自动编号列而发生错误 . 访问尝试将null值插入,但字段不会让它 . 在SQL中,此查询完美运行 . 但Access很烦人 .

1 回答

  • 1

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

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

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

相关问题