黑马程序员-day5-数据导入导出

                ------------- Windows phone 手机开发 、ASP .NET培训、期待与您交流!----------------

        最近刚学完ADO.NET,做了个数据导入导出的题目,是将txt中的数据导入数据库,然后将数据库中的数据导出到txt中,这里说的数据的格式是“tom|23”,tom指名字,23指年龄。

废话也不多说了,大家直接看代码。

            

        private void button1_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                using (FileStream fs = File.OpenRead(openFileDialog1.FileName))
                {
                    using (StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("GB2312")))
                    {//必需设置字符编码System.Text.Encoding.GetEncoding("GB2312"),不然string name = arr[0]中的name就是乱码
                        using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename='|DataDirectory|\dd.mdf';Integrated Security=True;User Instance=True"))
                        {//DataDirectory指的是数据库的绝对路径,winForm里面的Program.cs必需添加代码,否则是.NET是找到的数据库是有问题的,实在不懂可以去博客园自己去看看why
                            conn.Open();
                            using (SqlCommand cmd = conn.CreateCommand())
                            {
                                cmd.CommandText = "insert into T_Persons values(@Name,@Age)";
                                string line = "";
                                while ((line = sr.ReadLine()) != null)
                                {
                                    string[] arr = line.Split('|');
                                    string name = arr[0];
                                    int age = Convert.ToInt32(arr[1]);
                                    cmd.Parameters.Clear();//别忘了
                                    cmd.Parameters.Add(new SqlParameter("Name", name));
                                    cmd.Parameters.Add(new SqlParameter("Age", age));
                                    cmd.ExecuteNonQuery();
                                }
                            }
                        }

                    }
                }
                MessageBox.Show("txt导入数据库成功!");
            }
            
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                using (FileStream fs = File.OpenWrite(saveFileDialog1.FileName))
                {
                    using (StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312")))
                    {
                        using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename='|DataDirectory|\dd.mdf';Integrated Security=True;User Instance=True"))
                        { 
                            conn.Open();
                            using (SqlCommand cmd = conn.CreateCommand())
                            {
                                cmd.CommandText = "select * from T_Persons";
                                using (SqlDataReader sdr = cmd.ExecuteReader())
                                {
                                    
                                    while (sdr.Read())
                                    {
                                        string name = sdr.GetString(sdr.GetOrdinal("Name"));
                                        int age = sdr.GetInt32(sdr.GetOrdinal("Age"));
                                        string line =name+"|"+age;
                                        sw.WriteLine(line);
                                        sw.Flush();
                                    }
                                    
                                }
                            }
                        }
                    }
                }
                MessageBox.Show("导出数据到txt成功!");
            }
        }
       这是要在Program.cs文件中添加的代码,它只对winForm和win控制台有效:

       

  static void Main()
        {
            string dataDir = AppDomain.CurrentDomain.BaseDirectory;
            if (dataDir.EndsWith(@"\bin\Debug\")
                || dataDir.EndsWith(@"\bin\Release\"))
            {
                dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
                AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
            }

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
      ------------- Windows phone 手机开发 、ASP .NET培训、期待与您交流!----------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值