.NET--小白 发表于 2013-8-29 22:21:43

把文件导入到数据库的关闭文件流的小错误


就是运行到最后的MessageBox的时候出现




这是怎么回事,关于关闭的,请详细解释一下,谢谢!!


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);

            foreach (var line in lines)
            {
                string[] segs = line.Split('|');
                string name = segs;
                string age = segs;

                SqlHelper.ExecuteNonQuery("insert into tbl_Import (Name,Age) values(@Name,@Age)",
                  new SqlParameter("@Name", name),
                  new SqlParameter("@Age", Convert.ToInt32(age)));
            }
            

         MessageBox.Show("成功导入" + lines.Count() + "条数据");

      }

.NET--小白 发表于 2013-8-29 22:36:47

已解决

File.ReadLines(path)本质上就是使用了一个文件流读取,只是读取第一行数据,而且放入using块中,所以应该会自动关闭的(一旦退出using块)。
如果要读取所有行数据,应该对File.ReadLines(path)进行循环遍历,读取所有行数据。
代码中貌似无法看出啥异常,你可以尝试使用File.ReadAllLines(path)

ibcadmin 发表于 2013-8-29 22:49:12

{:2_26:}

ibcadmin 发表于 2013-9-1 11:08:24

:)
页: [1]
查看完整版本: 把文件导入到数据库的关闭文件流的小错误