有时候我们会把文件中的数据导入到数据库中,那么这要如何做呢?下面进行详细分析。
①先看看我们要导入的文件数据,假设文件数据和数据库的表字段分别如下图:
◇说明:名字和年龄之间是以'|'分隔开的
②那么我们就要把相对应的名字插入数据库中的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。
◇最后把获取到的变量值插入到数据库中,打印出最后成功导入的数据。