文件导入导出

坚持学习是个好习惯.

昨天学习了文件的导入导出自己也模仿着写了一个,因为导入导出都是txt或者doc没有什么难度,直接贴出代码以备后用,然后在网上找找导入导出execl(这应该是最常用的),或者图片什么的,扩展下.

当然现在对ADO.NET的学习深度不够代码不是那么规范,先贴上,看来要抓紧ADO.NET的学习了

实现如下:

//文件导入
        private void button1_Click(object sender, EventArgs e)
        {
            //判断打开对话结果
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //创建文件读取流
                using (FileStream fileStream = File.OpenRead(openFileDialog1.FileName))
                {
                    //打开文件流要读取的数据流,一定要用两个参数的构造函数设置读取的编码格式,不然出现乱码;
                    using (StreamReader streamReader = new StreamReader(fileStream, System.Text.Encoding.Default))
                    {
                        SqlConnection sqlconn = new SqlConnection(@"Server=218.198.33.210/;Integrated Security=false;DataBase=DB_Zyyy;User ID=YangShuang;Password=123456;pooling=false");
                        sqlconn.Open();
                        //Login.BLL.LoginManager mgr = new Login.BLL.LoginManager();
                        string line = null;
                        int i = 0;
                        using (SqlCommand sqlcmd = sqlconn.CreateCommand())
                        {
                            sqlcmd.CommandText = "insert into T_Users(Uname,Upassword,Uemail) values(@Uname,@Upassword,@Uemail)";
                            while ((line = streamReader.ReadLine()) != null)
                            {
                                string[] strs = line.Split('-');
                                MessageBox.Show(line.ToString());
                                string name = strs[0];
                                string password = strs[1];
                                string email = strs[2];
                                sqlcmd.Parameters.Add(new SqlParameter("Uname", name));
                                sqlcmd.Parameters.Add(new SqlParameter("Upassword", password));
                                sqlcmd.Parameters.Add(new SqlParameter("Uemail", email));
                                sqlcmd.ExecuteNonQuery();
                                //清楚sqlcmd的内容,不然每次循环用同一个sqlcmd会造成重复错误
                                sqlcmd.Parameters.Clear();
                                i++;
                            }
                        }
                        MessageBox.Show("共插入" + i + "行。");
                    }
                }
            }
            else
            {
                MessageBox.Show("读取错误");
            }
        }
        //文件导出
        private void button2_Click(object sender, EventArgs e)
        {
            //打开保存文件对话框
            saveFileDialog1.Filter = "文本文件(*.txt)|*.txt|wps(*.doc)|*.doc";
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //创建文件流
                using (FileStream fs = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None))
                {
                    //创建数据流
                    using (StreamWriter sw = new StreamWriter(fs, Encoding.Default))
                    {
                        //连接数据库
                        using (SqlConnection sqlconn = new SqlConnection(@"Data Source=./SQLEXPRESS;AttachDbFilename=D:/MSCodes/ASP.NET/UserManager/ToTesting/MyTestDB.mdf;Integrated Security=True;User Instance=True"))
                        {
                            sqlconn.Open();
                            using (SqlCommand sqlcmd =sqlconn.CreateCommand())
                            {
                                sqlcmd.CommandText = "select * from My_Users";
                                //不用sqlconn.CreatCommand()创建命令对话则会报ExecuteReader: Connection 属性尚未初始化。错误
                                //或者直接用SqlCommand sqlcmd=new SqlCommand(cmdText,sqlconn);实现相同功能
                               
                                //SqlDataReader抽象类无法继承或者实例化。
                                SqlDataReader sdr = sqlcmd.ExecuteReader();
                                while (sdr.Read())
                                {
                                    int id = sdr.GetInt32(sdr.GetOrdinal("UID"));
                                    string username = sdr.GetString(sdr.GetOrdinal("UNAME"));
                                    string password = sdr.GetString(sdr.GetOrdinal("UPASSWORD"));
                                    string others = sdr.GetString(sdr.GetOrdinal("UMESSAGE"));
                                    string tem = Convert.ToString(id) + "-" + username + "-" + password + "-" + others+"/r/n";
                                    //CR/LF
                                    sw.Write(tem);
                                    sw.Flush();
                                }
                                //else
                                //{
                                //    MessageBox.Show("导出失败");
                                //    return;
                                //}
                                sw.Close();
                                MessageBox.Show("导出成功");
                            }
                        }
                    }
                }
            }
            else
            {

                  MessageBox.Show("操作失败");

            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值