(8)C#之ADO.NET 文件数据导入到数据库

有时候我们会把文件中的数据导入到数据库中,那么这要如何做呢?下面进行详细分析。

 
①先看看我们要导入的文件数据,假设文件数据和数据库的表字段分别如下图:



  
        ◇说明:名字和年龄之间是以'|'分隔开的
 
②那么我们就要把相对应的名字插入数据库中的name字段,年龄插入数据库中的age字段。首先我们创建一个Button按钮,在这个按钮的Click事件中写下如下代码:
 
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "文本文件|*.txt";
 
            if (ofd.ShowDialog() != true)
            {
                return;
            }
            string filename = ofd.FileName;
            IEnumerable<string> lines = File.ReadLines(filename,Encoding.Default);
            int i = 0;
            foreach (string line in lines)
            {
                string[] segs = line.Split('|');
                string name = segs[0];
                int age = Convert.ToInt32(segs[1]);
                SqlHelper.ExecuteNonQuery("Insert into T_Customer (name,age) values(@name,@age)",
                    new SqlParameter("@name",name),
                    new SqlParameter("@age",age));
                i++;
            }
            MessageBox.Show("导入成功!共导入"+i+"条数据");
        }

 

◇现在进行分析:
 
◇首先利用ofd.Filename属性,获取到我们要打开的文件的文件名。
 
◇然后再利用一个集合类 IEnumerable,以及一个逐行读取文件    方法File.ReadLines(filename,Encoding.Default),逐行的把文字加入到该集合中去。(其中,filename是文件名,Encoding.Default是设置为系统默认的编码方式,以防止乱码的产生)
 
◇然后利用foreach遍历,将lines逐行遍历到line,并且在遍历过程中,利用字符串的分割函数,以‘|’对每行中的数据进行分割,产生数组并赋给变量name和age。
 
◇最后把获取到的变量值插入到数据库中,打印出最后成功导入的数据。
posted @ 2015-10-22 15:34  考拉爱喵喵  阅读(649)  评论(0编辑  收藏  举报