以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]列“ProdID”被约束为是唯一的。值“”已存在。 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=72606) |
-- 作者:kensou11111 -- 发布时间:2015/8/2 21:45:00 -- [求助]列“ProdID”被约束为是唯一的。值“”已存在。 最近在给一个朋友做一个软件的外挂程序时,出现了如下错误,数据库为SQL 2005 如下为代码 Tables("comProduct").addnew() Tables("comProduct").current("ProdID") = "DH"
|
-- 作者:有点蓝 -- 发布时间:2015/8/2 21:56:00 -- Dim r As Row r = Tables("comProduct").AddNew() dr("ProdID") ="H" 不行就检查表里是否已经存ProdID为空值的行
|
-- 作者:kensou11111 -- 发布时间:2015/8/2 22:05:00 -- 把ProdID为空值的行删掉后确实不再报这个错,但依然无法通过代码给当前行的ProdID列赋值 |
-- 作者:有点蓝 -- 发布时间:2015/8/2 22:07:00 -- 不会吧 [此贴子已经被作者于2015/8/2 22:12:28编辑过]
|
-- 作者:kensou11111 -- 发布时间:2015/8/2 22:16:00 -- 试了一下,好像所有列都不能通过代码赋值 我是直接用狐表加载他程序的SQL数据表的,是否其SQL数据库做了某些方面的限制?
|
-- 作者:有点蓝 -- 发布时间:2015/8/2 22:31:00 -- 你设置好连接的话没有限制啊 你运行完有没有DataTables.Save()
|
-- 作者:kensou11111 -- 发布时间:2015/8/2 22:46:00 -- DataTables.Save()也是没有用的 反正就是手工输入可以,代码赋值就不行
|
-- 作者:有点蓝 -- 发布时间:2015/8/2 22:58:00 -- 后台更新最好用SqlCommand 或者 SqlUpdate吧,带Sql命令的都好使 |
-- 作者:大红袍 -- 发布时间:2015/8/3 10:09:00 -- 1、那你数据表,尽量不要用自己的主键,用_Identify,并设置成自增是最好的。
2、如果自己设置的主键,必须给主键设置值,才能继续添加数据,一定要注意主键不能重复。代码
Dim dt As DataRow = DataTables("comProduct").addnew
dt("ProdID") = "DH"
|
-- 作者:kensou11111 -- 发布时间:2015/8/3 16:17:00 -- 以下是引用大红袍在2015/8/3 10:09:00的发言:
1、那你数据表,尽量不要用自己的主键,用_Identify,并设置成自增是最好的。
2、如果自己设置的主键,必须给主键设置值,才能继续添加数据,一定要注意主键不能重复。代码
Dim dt As DataRow = DataTables("comProduct").addnew
dt("ProdID") = "DH" 上面的代码确实可行,那为何这种情况要用datatables而不能用tables呢?
|