Foxtable(狐表)用户栏目专家坐堂 → 如何直接从sql数据库视图中导出数据到excel?


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

主题:如何直接从sql数据库视图中导出数据到excel?

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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17397 威望:0 精华:0 注册:2014/7/29 19:09:00
如何直接从sql数据库视图中导出数据到excel?  发帖心情 Post By:2017/6/9 12:35:00 [显示全部帖子]

在sql数据库中已有一个现成的视图比如 uv_A001 ,在窗口中设计了一个按钮,点击这个按钮时将从这个视图中查询到的数据直接导出到excel中,
代码要怎么写?还是说必须先查询到当前窗口表中才能再导出?

谢谢!

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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17397 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/9 12:53:00 [显示全部帖子]

1 那个我会,
2 储存过程也会,比如从某个储存过程usp_001 导出到"c:\excel01.exl"这里要怎么写?

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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17397 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/9 15:50:00 [显示全部帖子]

这样啊,我还以为直接点击一下就可以在指定位置生成excel表了,那还是做个窗口查询出来再导吧,谢谢了.

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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17397 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/9 16:12:00 [显示全部帖子]

新问题,fill不能直接从视图中取数填充吗?难道还要把视图中的sql语句直接写到窗口的afterload事件中来?

Tables(e.Form.name & "_Table1").Fill("se lect * from uv_bom100",Mydata,true)

红色那个是个视图,只能用true才可以
[此贴子已经被作者于2017/6/9 16:21:05编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17397 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/9 18:38:00 [显示全部帖子]

如果能直接导就更好了,
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim cmd As New SQLCommand
    cmd.ConnectionName = Mydata
    cmd.CommandText = "SE LECT * From uv_bom100"
    Dim dt As DataTable = cmd.ExecuteReader()
    Dim ex As New Exporter
    ex.SourceTableName = dt.name  '指定导出表
    ex.filepath = dlg.FileName  '指定目标文件
    ex.Export() '开始导出
End If

那红色那里要怎么写,会出错唉,提示  "不存在名称为"的datatable"  导出去变动乱码了

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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17397 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/9 21:04:00 [显示全部帖子]

还以为可以直接导出,不能的话我现在用的方式应该更简单
做了个窗口,打开时直接从sql视图fill数据进来,
Tables(e.Form.name & "_Table1").Fill("se lect * from uv_bom100",Mydata,True)
然后在窗口的导出按钮写代码就可以了
Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog 
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
     Tables(e.form.name & "_Table1").SaveExcel(dlg.FileName, "Sheet1")  '保存文件
End If

主要是没有理解有点色老师说的不用fill,可以直接用临时表导出.谢谢!

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


加好友 发短信
等级:八尾狐 帖子:1926 积分:17397 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/10 10:19:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:没有保存权限.jpg
图片点击可在新窗口打开查看

这个和升级到6.9版没关系吧,导出为excel时不能写入,但在用户的那个目录下随便新增文件什么的又可以写入,就是导出的excel文件不能写入,换到D盘等其他地方也不行
[此贴子已经被作者于2017/6/10 10:20:11编辑过]

 回到顶部