以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]datatable(“***").datarows.addnew不能触发datarowadding事件? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92598) |
-- 作者:cherryjing -- 发布时间:2016/11/8 8:44:00 -- [求助]datatable(“***").datarows.addnew不能触发datarowadding事件? 在一个窗口按钮的click事件中有如下代码: Dim db As DataTable = DataTables("专业领域") Dim dr As DataRow = DataTables("专业领域").Find("所属专业 = \'" & strMajor & "\' And 专业领域 = \'" & strType & "\' And 表名 = \'" & strTableName & "\'") If dr Is Nothing Then dr = DataTables("专业领域").DataRows.AddNew dr("所属专业") = strMajor dr("专业领域") = strType dr("表名") = strTableName End If 在表“专业领域”的datarowadding事件中仿照帮助有如下代码: e.DataRow("_Identify") = e.DataTable.Compute("Max(_Identify)") + 1 可是当点击那个窗口按钮时却提示: “_Identify”列不能为空 请问这是怎么回事?难道datarowadding没有被触发?
[此贴子已经被作者于2016/11/8 8:45:16编辑过]
|
-- 作者:有点色 -- 发布时间:2016/11/8 8:50:00 -- _Identify的值,是自动递增的,你为什么要赋值?你在数据库设置列的时候,要设置成自动递增
http://www.foxtable.com/webhelp/scr/1807.htm
|
-- 作者:cherryjing -- 发布时间:2016/11/8 9:05:00 -- 因为是外部数据表 |
-- 作者:cherryjing -- 发布时间:2016/11/8 9:10:00 -- 开始的时候是没有做datarowadding事件,就报这个错,后来想到可能是因为外部表的原因才加了那个事件处理代码,但还是出这个错 |
-- 作者:有点色 -- 发布时间:2016/11/8 17:52:00 -- 你要在你的数据库那里把_Identify设置成自动递增。
如果此列你设置成了非空或主键,只要有一行的数据为空,都会报这个错 |