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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 包连靖 中级黑马   /  2012-4-16 10:19  /  2663 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

把数据库导出到txt文件上怎么弄呢?视频里面是教怎么导入.
小弟比较愚钝,看了MSDN StreamWriter,还是不会...苦苦纠结1天,只能当伸手党求助了.

评分

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

查看全部评分

4 个回复

倒序浏览
  using (SqlConnection con = new SqlConnection("server=.;database=TestDataBase;user=sa;pwd=123"))
            {
                using (SqlCommand cmd = new SqlCommand("select * from dbo.grade", con))
                {
                    using (FileStream fs = new FileStream(@"d:\temp.txt",FileMode.Create,FileAccess.ReadWrite))
                    {
                        con.Open();
                        cmd.CommandType = CommandType.Text;
                        SqlDataReader reader = cmd.ExecuteReader();
                        using (TextWriter sw = new StreamWriter(fs, Encoding.UTF8))
                        {
                            while (reader.Read())
                            {
                                string data = reader["username"].ToString() + "--------------" + reader["score"].ToString();
                                sw.WriteLine(data);
                            }
                        }
                    }
                }
            }

评分

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

查看全部评分

回复 使用道具 举报
if (saveFileDialog1.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            using (FileStream filestream = File.OpenWrite(saveFileDialog1.FileName))
            {
                using (SqlConnection conn = new SqlConnection(str))
                {
                    conn.Open();
                    using (StreamWriter streamWriter = new StreamWriter(filestream))
                    {
                        using (SqlCommand cmd = new SqlCommand())
                        {
                            cmd.CommandText = "select * from Table_1";
                            cmd.Connection = conn;
                            using (SqlDataReader dr = cmd.ExecuteReader())
                            {
                                while (dr.Read())
                                {
                                    string line = null;                                   
                                    string name = dr.GetString(1);
                                    string pwd = dr.GetString(2);
                                    streamWriter.WriteLine(name + "|" + pwd);
                                }
                            }
                        }
                    }
                }
            }
            MessageBox.Show("保存成功");
我是这样写的,能导出,但是好像 有些地方时多于的,看看怎么弄。。。

评分

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

查看全部评分

回复 使用道具 举报
这是我写的,你参考吧,还可以用File.WriteAllLines()来写:
//数据导出
private void btnExport_Click(object sender, EventArgs e)
        {
            if (sfdExport.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            using (FileStream fileStream = File.OpenWrite(sfdExport.FileName))
            {
                using (StreamWriter streamWrite = new StreamWriter(fileStream))
                {
                    using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database2.mdf;Integrated Security=True;User Instance=True"))//创建连接时非常耗时的,因此不要每次操作都创建连接
                    {
                        conn.Open();
                        MessageBox.Show("打开数据库,连接成功!");
                        using (SqlCommand cmd = conn.CreateCommand())
                        {
                            cmd.CommandText = "select * from T_Persons";
                            using (SqlDataReader reader = cmd.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    string name = reader.GetString(reader.GetOrdinal("Name"));
                                    int age = reader.GetInt32(reader.GetOrdinal("Age"));
                                    streamWrite.WriteLine("{0}|{1}", name, age);//格式化写入,类似Console.WriteLine();
                                }
                            }
                        }
                    }
                }
                MessageBox.Show("导出成功!");
            }
        }

评分

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

查看全部评分

回复 使用道具 举报
学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马