-- 作者:ZJZK2018
-- 发布时间:2019/5/15 22:27:00
-- 用SQL多表多条件查询出错
下面代码出错:
Dim gzbmflt As String \'分页加载 Dim fdr As DataRow = DataTables("Users").SQLFind("Name = \'" & User.Name & "\'") If User.Type = UserTypeEnum.User Then If fdr IsNot Nothing Then If fdr("归属部门").Contains("总公司") Then gzbmflt = "[_Identify] Is Not Null" \'gzbmflt = "[系统编号] Is Not Null" Else gzbmflt = "归属部门 = \'" & fdr("归属部门") & "\' And 咨询类型 Like \'%" & fdr("咨询类型") & "%\'" End If End If Else gzbmflt = "[_Identify] Is Not Null" \'gzbmflt = "[系统编号] Is Not Null" End If
\'生成从后台提取数据生成一个临时的DataTable Dim cmd As New SQLCommand Dim dt As DataTable cmd.ConnectionName = V Dim str As String = "{招标信息}.系统编号,{招标信息}.项目名称,{招标信息}.咨询类型,{招标信息}.项目状态,归属部门,工程类别,投标地区,评标方式,业务性质,开标日期" cmd.CommandText = "Select DISTINCT " & str & " Fro m {招标信息} INNER JOIN {任务分配} ON {招标信息}.系统编号 = {任务分配}.系统编号 Where " & gzbmflt & " ORDER BY 开标日期 DESC " dt = cmd.ExecuteReader()
dt.DataCols.Add("idx",Gettype(Integer)) \'增加一个临时列 Dim drs As List(Of DataRow) = dt.Select("") For n As Integer = 0 To drs.Count - 1 \'遍历所有行 If n >= 0 AndAlso drs(n).IsNull("系统编号") = False Then drs(n)("idx") = n + 1 \'设置排名 End If Next \'lsbdt = dt Dim tb1 As Table = Tables(e.Form.Name & "_Table1") tb1.DataSource = dt
1、错误提示:
.NET Framework 版本:2.0.50727.8800 Foxtable 版本:2019.4.12.1 错误所在事件: 详细错误信息: 列名 \'_Identify\' 不明确。
2、
.NET Framework 版本:2.0.50727.8800 Foxtable 版本:2019.4.12.1 错误所在事件:窗口,窗口4,Button6,Click 详细错误信息: 未将对象引用设置到对象的实例。
[此贴子已经被作者于2019/5/15 22:27:36编辑过]
|