以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- Relations是否不能对通过SQLCommand生成的表使用 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176884) |
-- 作者:wgqcool -- 发布时间:2022/4/29 17:49:00 -- Relations是否不能对通过SQLCommand生成的表使用 Dim dt As DataTable = args(0) Dim str() As String = args(1) Dim pgl As String = dt.name & "yl" If Relations.Contains(pgl) = True Then \'如果已经存在关联 Relations.Delete(pgl) End If Dim cmd As new SQLCommand cmd.ConnectionName = vars("maindata") cmd.CommandText = "s elect [_Identify],物料号,品名,规格参数,工序,封装,品牌,误差 fro m {sf_raw} where [_Identify] is not null" Dim ds As DataTable = cmd.ExecuteReader(True) If dt.DataCols.Contains("编码") And ds.DataCols.Contains("物料号") Then Relations.Add(pgl,ds.DataCols("物料号"),dt.DataCols("编码"),False,RelationPathEnum.none) 运行到这里报错:如果父列或子列不在 DataSet 中,则无法创建 DataRelation。 是否是因为ds作为一个通过cmd.ExecuteReader生成的datatable无法用Relations.add? msgbox(pgl) Else msgbox("父表或子表找不到关键列!") End If |
-- 作者:有点酸 -- 发布时间:2022/4/30 5:56:00 -- 临时生成的表无法创建和原来的表创建关联,你可以改用queryBuilder或OuterBuilder: 这样就可以增加关联了。 不同的是有,先删除关联,再删除增加的表 |