如何在vb.net中将一个已经帮定好的sql server的表保存为一个excel表格?

来源:百度知道 编辑:UC知道 时间:2024/05/09 05:37:55
我用vb.net在一个项目中用datagridview绑定了一个sql server的表格(数据库名叫:AA,表名叫BB),我现在想在界面上添加一个“保存”摁钮,一摁就能弹出一个对话框,就像从网上下载东西一样,可以输入用户名和选择保存路径,将sql server表格保存成一个excel表格?哪位高人能够帮我写出应该怎么做?

要用T-SQL语句直接导出至Excel工作薄,就必须借用SQL Server管理器的一个扩展存储过程:“xp_cmdshell”,此过程的作用为“以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行方式返回任何输出。”下面为定义示例:
EXEC master..xp_cmdshell 'bcp 库名.dbo.表名out c:\Book3.xls -c -q -S"servername" -U"sa" -P""'

参数:S 是SQL服务器名;U是用户名;P是密码,没有就空着

说明:其实用这个过程导出的格式实质上就是文本格式的,不信的话在导出的Excel表中改动一下再保存看看。

实际例子与说明如下:
A,将表整个导出至Excel:
EXEC master..xp_cmdshell 'bcp northwind.dbo.orders out c:\Book1.xls -c -q -S"(local)" -U"sa" -P""'

注:
××northwind.dbo.orders,为数据库名+拥有者+表名

××直接导出用“out”关健字

-------------------------------------------
B,利用查询来导出部分字段至Excel:
EXEC master..xp_cmdshell 'bcp "SELECT orderid,cutomerid,freight FROM northwind..orders ORDER BY orderid" queryout C:\ Book1.xls -c -S"(local)" -U"sa" -P""'

注:
××在bcp后面加了一个查询语句,并用双引号括起来