您的位置:程序门 -> .net技术 -> vb.net



vb.net中将sql数据导出到EXECl


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


vb.net中将sql数据导出到EXECl
发表于:2007-06-08 00:35:41 楼主
怎么用vb.net将sql的数据导出到EXECl,在mssql中有没有直接的语句生成啊?
发表于:2007-06-08 08:19:251楼 得分:0
这个是我找的不知道对你有没有用呢


                if   textbox1.text   =   " "   then
                        msgbox( "请输入数据文件名 ")
                        exit   sub
                end   if
                dim   dname   as   string
                dname   =   textbox1.text
                dim   constr   as   string
                constr   =   "data   source=localhost   ;integrated   security=sspi   ;initial   catalog= "   +   dname
                dim   sqlconnection1   as   sqlclient.sqlconnection   =   new   system.data.sqlclient.sqlconnection
                sqlconnection1.connectionstring   =   constr
                '   dim   sqlconnection1   as   sqlclient.sqlconnection   =   new   sqlconnection( "data   source=localhost   ;integrated   security=sspi   ;initial   catalog=zhengwu ")
                dim   selectcmd   as   sqlcommand   =   new   sqlcommand( "select   *   from   yongpin ",   sqlconnection1)
                dim   sqldataadapter1   as   sqldataadapter   =   new   sqldataadapter
                sqldataadapter1.selectcommand   =   selectcmd
                sqlconnection1.open()
                dim   dsdataset1   as   dataset   =   new   dataset
                sqldataadapter1.fill(dsdataset1,   "yongpin ")


                '以上连接sql

                dim   myoledbcn   as   new   oledbconnection
                dim   myoledbcmd   as   new   oledbcommand
                dim   introwscnt,   intcolscnt   as   integer
                dim   strsql   as   string
                dim   epath   as   string   =   "c:\my.xls "

                try
                        myoledbcn.connectionstring   =   "provider=microsoft.jet.oledb.4.0;   data   source= "   &   epath   &   ";extended   properties= " "excel   8.0; " " "
                        myoledbcn.open()
                        myoledbcmd.connection   =   myoledbcn

                        '第一行插入列标题
                        strsql   =   "create   table   mytab( "
                        for   intcolscnt   =   0   to   dsdataset1.tables( "yongpin ").columns.count   -   1
                                if   intcolscnt   <>   dsdataset1.tables( "yongpin ").columns.count   -   1   then
                                        strsql   =   strsql   &   dsdataset1.tables( "yongpin ").columns(intcolscnt).caption   &   "     text, "
                                else
                                        strsql   =   strsql   &   dsdataset1.tables( "yongpin ").columns(intcolscnt).caption   &   "     text) "
                                end   if
                        next
                        myoledbcmd.commandtext   =   strsql
                        myoledbcmd.EXECutenonquery()

                        '插入各行
                        for   introwscnt   =   0   to   dsdataset1.tables( "yongpin ").rows.count   -   1
                                strsql   =   "insert   into   mytab   values( ' "
                                for   intcolscnt   =   0   to   dsdataset1.tables( "yongpin ").columns.count   -   1
                                        if   intcolscnt   <>   dsdataset1.tables( "yongpin ").columns.count   -   1   then
                                                strsql   =   strsql   &   dsdataset1.tables( "yongpin ").rows(introwscnt).item(intcolscnt).tostring().replace( " ' ",   "   ")   &   " ', ' "
                                        else
                                                strsql   =   strsql   &   dsdataset1.tables( "yongpin ").rows(introwscnt).item(intcolscnt).tostring().replace( " ' ",   "   ")   &   " ') "
                                        end   if
                                next
                                myoledbcmd.commandtext   =   strsql
                                myoledbcmd.EXECutenonquery()
                        next
                        messagebox.show( "数据已经成功导入excel文件,并保存在c盘根目录下 ",   "数据导出 ",   messageboxbuttons.ok,   messageboxicon.information)
                catch   errcode   as   exception
                        msgbox( "错误信息: "   &   errcode.message   &   vbcrlf   &   vbcrlf   &   _
                                      "引发事件: "   &   errcode.targetsite.tostring,   msgboxstyle.okonly   +   msgboxstyle.information,   "错误来源: "   &   errcode.source)
                        exit   sub
                finally
                        myoledbcmd.dispose()
                        myoledbcn.close()
                        myoledbcn.dispose()
                end   try
                sqlconnection1.close()
发表于:2007-06-08 09:53:412楼 得分:0
没有必要这么复杂
sql语句:
insert   into    
opendatasource( 'microsoft.jet.oledb.4.0 ', 'data   source=path;user   id=admin;password=;extended   properties=excel   8.0 ')...[sheet1$]
select     *   from   tablename

vb.net语句

dim   cnn   as   new   sqlclient.sqlconnection
cnn.connectionstring= "server=srvname;database=dbname;uid=,pwd= "
cnn.open
dim   cmd   as   new   sqlclient.sqlcommand(sql,cnn)
cmd.EXECutenonquery

我测试过没有问题!
给分!!!


发表于:2007-06-08 11:32:153楼 得分:0
没看明白
我通常不这么写
发表于:2007-06-08 12:39:014楼 得分:0
给你个c#的参考一下
用sql语句导出
导出到excel操作。
    oledbconnection   conexcel   =   new   oledbconnection();
                        try
                        {
                                savefiledialog   savefile   =   new   savefiledialog();
                                savefile.filter   =   ( "excel   文件(*.xls) ¦*.xls ");//指定文件后缀名为excel   文件。
                                if   (savefile.showdialog()   ==   dialogresult.ok)
                                {
                                          string   filename   =   savefile.filename;
                                          if   (system.io.file.exists(filename))
                                          {
                                                  system.io.file.delete(filename);//如果文件存在删除文件。
                                            }
                                        int   index   =   filename.lastindexof( "\\ ");//获取最后一个\的索引
                                        filename   =   filename.substring(index   +   1);//获取excel名称(新建表的路径相对于savefiledialog的路径)
                                        //select   *   into   建立   新的表。
                                        //[[excel   8.0;database=   excel名].[sheet名]   如果是新建sheet表不能加$,如果向sheet里插入数据要加$. 
                                        //sheet最多存储65535条数据。
                                        string   sql   =   "select   top   65535   *   into       [excel   8.0;database= "   +   filename   +   "].[用户表]   from   用户表 ";
                                      conexcel.connectionstring   =   "provider=microsoft.jet.oledb.4.0;data   source= "   +   application.startuppath   +   "\\appdata.mdb ";//将数据库放到debug目录下。
                                        oledbcommand   com   =   new   oledbcommand(sql,   conexcel);
                                        conexcel.open();
                                        com.EXECutenonquery();
                                        messagebox.show( "导出数据成功 ", "导出数据 ",   messageboxbuttons.ok,   messageboxicon.information   );
                                }
                        }
                        catch   (exception   ex)
                        {
                                messagebox.show(ex.tostring());
                        }
                        finally  
                        {
                                conexcel.close();
                        }  

发表于:2007-06-08 13:24:575楼 得分:0
看看这个
http://blog.csdn.net/zzy1254/archive/2007/05/21/1618959.aspx
发表于:2007-06-08 13:51:196楼 得分:0
学习!
发表于:2007-06-08 15:16:537楼 得分:0
study...


快速检索

最新资讯
热门点击