Foxtable(狐表)用户栏目专家坐堂 → select语句动态添加列名


  共有4500人关注过本帖树形打印复制链接

主题:select语句动态添加列名

帅哥哟,离线,有人找我吗?
HANZHIGANG
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
select语句动态添加列名  发帖心情 Post By:2023/5/10 13:34:00 [只看该作者]

Dim cmd As new SQLCommand
cmd
.CommandText = "Se lect 部门,职务 from {员工} Wh ere 姓名 = '王伟'"
cmd
.ConnectionName = "数据源名称"
Dim
Values = cmd.ExecuteValues

中sele ct 后面的列名能够用代码动态添加吗?比如所有表中除操作员和操作日期两列不添加,其他的列都添加
请指导

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/10 13:40:00 [只看该作者]

没有必要吧,就那么2个列,都加载出来又有什么问题呢

dim s as string
for each c as col in tables("a").cols
s = s & "," & c.name
next

cmd.CommandText = "Se lect " & s.trim(",") & " from {员工} Wh ere 姓名 = '王伟'"

 回到顶部
帅哥哟,离线,有人找我吗?
HANZHIGANG
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2023/5/10 13:49:00 [只看该作者]

多谢老师

 回到顶部
帅哥哟,离线,有人找我吗?
HANZHIGANG
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2023/5/10 14:05:00 [只看该作者]

Dim s As String
For Each c As Col In maintable.cols
    If c.Name <> "编辑" And c.Name <> "删除" Then 
        s = s & "," & c.name
    End If
Next

MessageBox.Show("2")

Dim cmd As New SQLCommand
cmd.C 
Dim nms() As String = {s.trim(", ")}

MessageBox.Show("3")

If Filter > "" Then
    cmd.CommandText = "Se lect " & s.trim(",") & " From {maintable.NAME} Where " & Filter 
Else
    cmd.CommandText = "Se lect " & s.trim(",") & "From {maintable.NAME} "
End If

MessageBox.Show("4")

Dim dt As DataTable = cmd.ExecuteReader()

MessageBox .Show("5")

 回到顶部
帅哥哟,离线,有人找我吗?
HANZHIGANG
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2023/5/10 14:05:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
HANZHIGANG
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2023/5/10 14:05:00 [只看该作者]

出现上面的提示

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/10 14:07:00 [只看该作者]

If Filter > "" Then
    cmd.CommandText = "Se lect " & s.trim(",") & " From {} Where " & Filter 
Else
    cmd.CommandText = "Se lect " & s.trim(",") & "       From {“ & maintable.NAME & ”} "
End If

 回到顶部
帅哥哟,离线,有人找我吗?
HANZHIGANG
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2023/5/10 14:31:00 [只看该作者]

老师,这是全部的代码,我自已写的下面还是有错误,还是得帮我该一下。
Dim Filter As String
With e.Form.Controls("上游客户")
    If .text > "" Then
        Filter = "上游客户 like '%" & .text & "%'"
    End If
End With

With e.Form.Controls("品牌")
    If .text > "" Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "品牌 like '%" & .text & "%'"
    End If
End With

With e.Form.Controls("商品车")
    If .text > "" Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "商品车 like '%" & .text & "%'"
    End If
End With

With e.Form.Controls("备注")
    If .text > "" Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "备注 like '%" & .text & "%'"
    End If
End With

Dim s As String
For Each c As Col In maintable.cols
    If c.Name <> "编辑" And c.Name <> "删除" Then 
        s = s & "," & c.name
    End If
Next

Dim cmd As New SQLCommand
cmd.C 
Dim nms() As String = {" & s.trim(", ") & " }

If Filter > "" Then
    cmd.CommandText = "Se lect " & s.trim(",") & " From {} Where " & Filter 
Else
    cmd.CommandText = "Se lect " & s.trim(",") & "       From {“ & maintable.NAME & ”} "
End If

Dim dt As DataTable = cmd.ExecuteReader()

Dim Book As New XLS.Book
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter = "Excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then
    Book.Save(dlg.FileName) 
End If


Book = New XLS.Book(dlg.FileName)
Dim Sheet As XLS.Sheet = Book.Sheets(0)

Dim st As XLS.Style = Book.NewStyle '日期列的显示格式 
st.Format = "yyyy-MM-dd" 
For c As Integer = 0 To nms.length - 1 
    If MainTable.Cols(nms(c)).IsDate Then '如果是日期列
        Sheet.Cols(c).Style = st '设置显示格式
    End If
Next


For c As Integer = 0 To nms.Count - 1 
    Sheet(0, c).Value = nms(c)
Next
For r As Integer = 0 To dt.DataRows.Count - 1 
    For c As Integer = 0 To nms.Count - 1 
        Sheet(r + 1, c).Value = dt.DataRows(r)(nms(c))
    Next
Next

Book.Save(dlg.FileName)

Dim Result As DialogResult
Result = MessageBox.Show("导出成功,是否打开所导出文件?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
End If

 回到顶部
帅哥哟,离线,有人找我吗?
HANZHIGANG
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:430 积分:4655 威望:0 精华:0 注册:2015/3/21 14:25:00
  发帖心情 Post By:2023/5/10 14:32:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/5/10 14:34:00 [只看该作者]

Dim nms() As String = s.trim(", ").split(",")

If Filter > "" Then
    cmd.CommandText = "Se lect " & s.trim(",") & " From {“ & maintable.NAME & ”} Where " & Filter 
Else
    cmd.CommandText = "Se lect " & s.trim(",") & "       From {“ & maintable.NAME & ”} "
End If

 回到顶部
总数 15 1 2 下一页