• (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。
     
    ◇最后把获取到的变量值插入到数据库中,打印出最后成功导入的数据。
  • 相关阅读:
    监听刷新
    判断当前日期是否在[startDate, endDate]区间
    精确计算工具类,提供加减乘除的计算
    常用正则表达式
    高并发
    递归案例
    序列化和反序列化
    web安全
    复杂跨域之CorsFilter源码分析
    springMVC访问根路径问题
  • 原文地址:https://www.cnblogs.com/kaolalovemiaomiao/p/4707580.html
Copyright © 2020-2023  润新知