要求批量导出数据,导到一个excel文件里,偶尝试用ms自带存储过程master..xp_cmdshell实现,这种发放存在一个问题就是客户需要服务器数据库的master权限。那么怎么解决这个问题呢?1、要么能给客户一个批量导出的权限,但这个权限可能是master受限权限,如何给?带来的安全性问题怎么解决?
2、要么采用其他方法导出数据,数据的查询不是问题,那怎么将查询出的数据导到excel文件里呢?值得注意的是数据量可能很大 以万为单位 所以要注意速度。诚邀高手一起解决……并高分相送……
2、要么采用其他方法导出数据,数据的查询不是问题,那怎么将查询出的数据导到excel文件里呢?值得注意的是数据量可能很大 以万为单位 所以要注意速度。诚邀高手一起解决……并高分相送……
解决方案 »
- 新手求助 winform第一次启动 窗口中的控件不同步显示
- 如何把处理过后的字符串转为文件流
- 怎样在泛型类型参数的对象上进行四则运算?
- C# 关于查询统计的循环问题
- 在那儿看对象啊?
- 自定义控件问题 切换输入法时输入法不显示
- 如何设置图片或者其他控件的背景颜色为渐变色
- 如何直接获取数据库的值三层里面
- path=System.Configuration.ConfigurationSettings.AppSettings["PhotoPath"].ToString()+RelativeFile; 的具体解释。
- C#代码如何避免被反编译!!!
- 100求WOL(远程唤醒,远程开机)的C#代码或代码片段,谢谢!
- 高人们:把一个文件夹转化为它的压缩文件.RAR怎么做?!谢谢
上面的是从DataTable导出数据,如果不直接从数据库导,可作参考
我在是从datagrid导出,一天的数据就有上万条,查询比较慢,然后我先查询部分数据导出,客户端会出现下载页面,再去查询后面的数据导出。如果查询速度不是问题,单单只对数据导出,无需设置格式等,使用http://www.weste.net/2004/12-20/11440068743.html中介绍的一种方法导出速度还是可以的。
select * from SQLServer表
或用BCPmaster..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" out "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"'上面的区别主要是:OpenRowSet 需要 mdb 和 表 存在,BCP 会在不存在的时候生成该 mdb
我已经开了msdtc服务,可以用你的这个方法在sa用户下使用了
但如果我已普通用户来远程操作数据库会给出提示:
“已拒绝对 OLE DB 提供程序 'microsoft.jet.oledb.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。”不明白怎么回事
DataSet.WriteXml( filePath,System.Data.XmlWriteMode.DiffGram);
你在把这个生成的文件保存成.xls为扩展名,在把文件连接提供给客户端。
客户直接用Excel打开就是.xls了。
Private Sub writeDBDHeader(ByVal response As HttpResponse)
Dim stream As New MemoryStream
Dim output As New StreamWriter(stream, System.Text.Encoding.GetEncoding("GB2312")) Try
output.WriteLine("合同号 分公司 用户代码 用户名")
output.Flush()
response.BinaryWrite(stream.ToArray())
Catch ex As Exception
Finally
output.Close()
End Try
End Sub
注意上面的“合同号 分公司”之间是Tab符号。
速度吗,1万行的数据需要4-8秒,在1万元的服务器上。