首页 > 开发 > XML > 正文

将PUBS中的所有用户表内容分别用xml文件导出

2024-09-05 20:56:00
字体:
来源:转载
供稿:网友

  写这篇文章时,我也拿不好主意到底是该post上来呢,还是不post!因为这实在好像没有什么的。后来转念一想,反正是blog吗,不就是写写自己的心情之类的嘛,管他有没有技术含量,只要不放到首页上影响整体博客的技术形象就可以了。所以我就把这篇文章post上来了。高手就免看了。:)

  事情源于一个网友的一个要求:她自己说是一个作业,要将pubs中的所有用户表的内容分别用xml文件导出保存起来。本来想当时给她答案的,可真不好彩的是被一个客户的电话逮住,只好回到家中为她做一下。我也不清楚,她是扮猪吃老虎还是真是初学者。不过从和她对话来看,倒也是性情中女子。应该还是蛮可爱的一个女孩子啦!隐隐约约谈话当中,我想她可能自己也已经完成这个“作业”的,可能她自己拿不准自己能不能“及格”才问我的。呵呵...

  拿着这份要求,很快,脑子里就闪现dataset有一个writexml的方法。事实上,我也是采用这个简单的方法来完成她的作业的。当然,在这个小小的作业上,我还是将几乎将ado.net用了个遍,包括sqlconnection,sqldataadapter,sqlcommand,sqldatareader和dataset。另外还使用了一个arraylist数组。arraylist还真是好东西,vs6.0好象是没有的吧。(不知道有没有,反正我以前好象没有用过,呵呵...)整个代码实现,我都只在一个button的click事件中实现。代码不多。干脆一同post上来。

        private void button1_click(object sender, system.eventargs e)
        {
            string strconn = "data source=localhost;initial catalog=pubs;" + "integrated security=sspi";
            string strsql = "select name from sysobjects where xtype='u' and status>=0";
            sqlconnection sqlconn = new sqlconnection(strconn);
            sqlcommand sqlcomm = new sqlcommand(strsql,sqlconn);
            sqldatareader sqlread = null;
            dataset ds = null;
            arraylist al = new arraylist();
            if(sqlconn .state == connectionstate.closed)    sqlconn.open();
            try
            {
                sqlread = sqlcomm.executereader();
                while(sqlread.read())
                {
                    string strtablename = sqlread.getvalue(0).tostring();
                    al.add(strtablename);
                }
                sqlread.close();
                for(int i =0;i<al.count;i++)
                {
                    string strtable = "select * from "+al[i].tostring();
                    sqldataadapter sqladapter = new sqldataadapter(sqlcomm);
                    ds = new dataset();
                    sqlread.close();
                    sqladapter.fill(ds,al[i].tostring());
                    ds.writexml(al[i].tostring()+".xml");
                }
                messagebox.show("finish it!");
            }
            catch(exception e)
            {
                messagebox.show(e.tostring());
            }
            finally
            {
                if(sqlconn.state == connectionstate.closed) sqlconn.close();
            }
        }

  没有最好,只求更好。如果那位高手不幸看到了这篇post,并且认为还有更好的解决方案,欢迎回复讨论!



收集最实用的网页特效代码!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表