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


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

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

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


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

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

谢谢!

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/9 12:39:00 [只看该作者]

 1、如果用foxtable操作,需要读取到数据后才能导出;

 

 2、可以写个存储过程专门导出excel。


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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/9 12:53:00 [只看该作者]

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

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


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

存储过程只能导出到数据库服务器,无法导出到客户端。

先加载数据再导出吧

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/9 14:49:00 [只看该作者]

 导出只能导出到服务器,你还要下载xls下来。还不如直接查询到foxtable再导出。

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/6/9 15:50:00 [只看该作者]

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

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望: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编辑过]

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/9 16:46:00 [只看该作者]

既然是视图,当然只能用true。这是游戏规则

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/6/9 16:56:00 [只看该作者]

以下是引用HappyFt在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编辑过]

 

查询表、视图,都是用的true。

 

导出成excel可以用临时表dt的,不需要fill进去。http://www.foxtable.com/webhelp/scr/0683.htm

 


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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望: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"  导出去变动乱码了

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