以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何直接从sql数据库视图中导出数据到excel? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101895) |
-- 作者:HappyFt -- 发布时间:2017/6/9 12:35:00 -- 如何直接从sql数据库视图中导出数据到excel? 在sql数据库中已有一个现成的视图比如 uv_A001 ,在窗口中设计了一个按钮,点击这个按钮时将从这个视图中查询到的数据直接导出到excel中, 代码要怎么写?还是说必须先查询到当前窗口表中才能再导出? 谢谢!
|
-- 作者:有点色 -- 发布时间:2017/6/9 12:39:00 -- 1、如果用foxtable操作,需要读取到数据后才能导出;
2、可以写个存储过程专门导出excel。 |
-- 作者:HappyFt -- 发布时间:2017/6/9 12:53:00 -- 1 那个我会, 2 储存过程也会,比如从某个储存过程usp_001 导出到"c:\\excel01.exl"这里要怎么写?
|
-- 作者:有点蓝 -- 发布时间:2017/6/9 14:19:00 -- 存储过程只能导出到数据库服务器,无法导出到客户端。 先加载数据再导出吧
|
-- 作者:有点色 -- 发布时间:2017/6/9 14:49:00 -- 导出只能导出到服务器,你还要下载xls下来。还不如直接查询到foxtable再导出。 |
-- 作者:HappyFt -- 发布时间:2017/6/9 15:50:00 -- 这样啊,我还以为直接点击一下就可以在指定位置生成excel表了,那还是做个窗口查询出来再导吧,谢谢了. |
-- 作者: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编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/6/9 16:46:00 -- 既然是视图,当然只能用true。这是游戏规则 |
-- 作者:有点色 -- 发布时间: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 -- 发布时间: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" 导出去变动乱码了
|