ADO.net之导入数据

简介:

           在学习完三层之后,发现有很多欠缺的地方,于是找了一些资料进行补充,在看ado视频时在敲导入导出文件的代码时很是困惑,原因是对OpenFileDialog控件的方法还是不熟悉,首先给大家展示一个简单但写的很繁琐额程序:

private void btnInput_Click(object sender, EventArgs e)
        {
            if (ofdInput.ShowDialog()==DialogResult.OK )//是否导入文件并“打开”按钮
            {
                using(FileStream filestream=File.OpenRead (ofdInput.FileName))//如果导入文件并按“打开”按钮,则将该文件内容写入filestream
                {
                    using(StreamReader streamReader=new StreamReader(filestream ))//StreamReader是用来读filestream的
                    {
                        string   line = null;//命名变量line,默认为null值,用来一条条读取数据
                        while ((line=streamReader.ReadLine ())!=null)//一条条读数据
                        {
                            string[] strs=line.Split ('|');//定义分割字段的符号“|”
                            string name=strs[0];//每一条的第一个数为name
                            int  age=Convert.ToInt32(strs[1]);//第二个数为age,因为数据库中的Age为int类型,而这里有strs[]向age赋的是string类型,因此需要有一个转换的过程
                            using(SqlConnection conn=new SqlConnection ("server=.;database=IOdata;uid=sa;password=123456"))//创建数据库连接
                            {
                                conn.Open();//打开连接
                                using (SqlCommand cmd=conn.CreateCommand ())//创建sql命令
                                {
                                    cmd.CommandText = "Insert into T_Persons(Name,Age) values(@Name,@Age)";//插入数据
                                    cmd.Parameters.Add(new SqlParameter ("Name",name) );//运用参数化给name赋值
                                    cmd.Parameters.Add(new SqlParameter("Age", age));
                                    cmd.ExecuteNonQuery();
                                }
                            }
           在上面的程序中就知道filestream是用来写入用户要打开的文件的,而streamreader是用来将文件的内容读出来,在连接数据库之后进行将从文件读出的内容insert into 数据库,就实现的程序的导入,但是有个问题就是这本来是个很简单的过程,但是这里用了连接数据库,而这个过程是很费事的,所以我们可以简化,重用sqlcommand,下面进行一下简化。          

private void btnInput_Click(object sender, EventArgs e)
        {

            if (ofdInput.ShowDialog() !=DialogResult.OK )//如果不按打开按钮
            {
                return ;
            }
            using (FileStream filestream = File.OpenRead(ofdInput.FileName))//如果导入文件并按“打开”按钮,则将该文件内容写入filestream
            {
                using (StreamReader streamReader = new StreamReader(filestream))//StreamReader是用来读filestream的
                {
                    using (SqlConnection conn = new SqlConnection("server=.;database=IOdata;uid=sa;password=123456"))//创建数据库连接
                    {
                        conn.Open();//打开连接
                        using (SqlCommand cmd = conn.CreateCommand())//创建sql命令
                        {
                            cmd.CommandText = "Insert into T_Persons(Name,Age) values(@Name,@Age)";//插入数据

                            string line = null;//命名变量line,默认为null值,用来一条条读取数据
                            while ((line = streamReader.ReadLine()) != null)//一条条读数据
                            {
                                string[] strs = line.Split('|');//定义分割字段的符号“|”
                                string name = strs[0];//每一条的第一个数为name
                                int age = Convert.ToInt32(strs[1]);//第二个数为age,因为数据库中的Age为int类型,而这里有strs[]向age赋的是string类型,因此需要有一个转换的过程
                                cmd.Parameters.Clear();
                                cmd.Parameters.Add(new SqlParameter("Name", name));//运用参数化给name赋值
                                cmd.Parameters.Add(new SqlParameter("Age", age));
                                cmd.ExecuteNonQuery();
                            }
                       }
                    }
                }
            }
            MessageBox.Show("导入成功");
          和上段代码比较,虽然改动不大,但是对一个大的程序来说很有用的,如果反复打开、关闭数据库是非常耗时的,而用户是绝对没有这个耐心的,他们需要的是越快越好,所以和上次考试系统的师哥师姐的讲解内容接轨了,大数据问题……



相关文章
|
SQL 数据库
3.SQL和ADO.Net【上】
3.SQL和ADO.Net【上】
70 0
4.SQL和ADO.Net【下】
4.SQL和ADO.Net【下】
47 0
5.SQL和ADO.Net高级【上】
5.SQL和ADO.Net高级【上】
60 0
|
SQL 索引
6.SQL和ADO.Net高级【中】
6.SQL和ADO.Net高级【中】
77 0
|
SQL 数据库 数据安全/隐私保护
ADO.NET 连接数据库方式
使用Command和DataReader对象:
76 0
|
SQL 数据库连接 数据处理
ADO.NET基础03
ADO.NET基础03
153 0
ADO.NET基础03
|
存储 开发框架 .NET
ADO.NET基础01
ADO.NET基础01
152 0
ADO.NET基础01
|
SQL 安全 数据库连接
ADO.NET基础02
ADO.NET基础02
211 0
ADO.NET基础02
|
SQL .NET 数据库
一起谈.NET技术,不附加数据库 ASP.NET调用.sql文件
  笔者好久没有写随笔了,这次是遇到提出这样的问题“不用附加数据库,什么修改web.config什么的那么麻烦,而是直接运行一个页面,然后根据向导一步一步引导用户安装生成数据库”那么这样做就需要一个创建数据库的语句和创建这些数据库表的语句,还有这些创建数据库视图以及函数的语句。
918 0