A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

ADO.net部分,谁做出导出数据库数据的  麻烦下能 发过来学习下哪  自己做的不怎么行  想参考下大家的   谢了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
网络卡了 发了2次 不好意思
回复 使用道具 举报
自己写的  谁能帮改进下吗   感觉写的太繁琐了


            svfile2.Filter = "txt文件|*.txt|所有文件|*.*";//保存文件的类型
            svfile2.AddExtension=true;                    //没有后缀时自动添加类型
            svfile2.Title="写文件";                       //标题
            if(svfile2.ShowDialog()!=DialogResult.OK)    //如果不点击保存对话框的ok则返回
            {
                return;
            }
            using (SqlConnection cm = new SqlConnection(@"Data Source=.\SQLEXPRESS;attachdbfilename=|datadirectory|\file.mdf;Integrated Security=True;User Instance=True"))
            //新建连接数据库
            {
                cm.Open();
                //打开
                using (SqlCommand cmd = cm.CreateCommand())//数据库每次连接耗资源和时间
                {
                    using( FileStream filesteam = new FileStream(svfile2.FileName, FileMode.Create))
                    //new一个实例  实例化一个文件流--->与写入文件相关联
                    {
                          using(StreamWriter streamwriter=new StreamWriter(filesteam))
                          //new一个实例 实例化一个StreamWriter-->与fs相关联
                          {
                              string line=null;
                              cmd.CommandText="select * from T_file";
                              //查询数据库
                              using (SqlDataReader reader = cmd.ExecuteReader())
                              //数据库读取
                              {
                                  while (reader.Read())
                                      //循环  知道读完数据库所有行 则reader.Read()为Flase
                                  {
                                      string a = reader.GetString(reader.GetOrdinal("Fname"));
                                      //读取 数据库中的 Fname列
                                      int b = reader.GetInt32(reader.GetOrdinal("Fage"));
                                      //读取 数据库中的 Fage列
                                      //line = a +"|"+ b.ToString()+"\r";
                                      line = string.Format("用户名为:{0},年龄是{1}\t",a,b);
                                      //将从数据库中读取的数据赋给line变量
                                      streamwriter.Write(line);
                                     //将line写入 文件内
                                  }
                                  MessageBox.Show("导出成功!");
                              }

                          }
                    }
                }

            }
            
            }
回复 使用道具 举报
本帖最后由 王针 于 2012-5-31 11:46 编辑

不怎么行是指最后没有导出成功吗?我也出现过导入导出总是不能在数据库中看到数据的情形,最后发现原来我总是忘记在main()函数的里面添加那段 重要的代码.

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我也请赐教啊!
回复 使用道具 举报
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             if (saveFileDialog1.ShowDialog()!=DialogResult.OK)
  4.             {
  5.                 return;
  6.             }
  7.             string filename = saveFileDialog1.FileName;
  8.             using(StreamWriter wt=new StreamWriter(filename))
  9.             {
  10.                 using (SqlConnection conn = new SqlConnection(@"Data Source = .\SQLEXPRESS;AttachDBFilename=|DataDirectory|\DataBase4.mdf;Integrated Security = True;User Instance = True"))
  11.                 //创建连接是非常耗时的,因为不要每次操作都创建连接
  12.                  {
  13.                 conn.Open();
  14.                      using (SqlCommand cmd = conn.CreateCommand())
  15.                     {
  16.                         cmd.CommandText = "select Name,Age from T_P";
  17.                         using(SqlDataReader reader=cmd.ExecuteReader())
  18.                         {
  19.                             while (reader.Read())
  20.                             {
  21.                                 wt.Write(reader.GetString(reader.GetOrdinal("Name")));
  22.                                 wt.Write('|');
  23.                                 wt.Write(reader.GetInt32(reader.GetOrdinal("Age")));
  24.                                 
  25.                             }
  26.                         }
  27.                     }
  28.                  }
  29.                 wt.Close();
  30.             }
  31.             
  32.         }
  33.         
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马