asp.net 中使用 SqlBulkCopy 将一个目录下指定类型的数据文件导入到数据库 Murray

自己做练习时做的一个小例子,有不足的地方。 

 

前台代码:

<asp:FileUpload ID="fileImport" runat="server" />

<asp:Button runat="server" ID="btnImport" Text="导入" OnClick="btnImport_Click" />

 在这边选中一个文件夹我是用过选中这个文件夹里的一个文件,然后在后台再通过获取该文件所在目录!这边非常的不妥,自己只是练习这样弄了!

后台代码:

 protected void btnImport_Click(object sender, EventArgs e)

    {
        string path = Path.GetDirectoryName(fileImport.PostedFile.FileName);
        string[] list = Directory.GetFiles(path, "*.txt", SearchOption.AllDirectories);
        foreach (string file in list)
        {
            string fileName = Path.GetFileNameWithoutExtension(file);//获取文件名
            string[] lines = File.ReadAllLines(file, Encoding.GetEncoding("gb2312"));
            DataTable dataTable = new DataTable();//在内存中建立一个,创建一个表后要先创建列,再创建行
            dataTable.Columns.Add("start");
            dataTable.Columns.Add("end");
            dataTable.Columns.Add("city");
            dataTable.Columns.Add("info");

            foreach (string line in lines)//遍历每个文件中数据
            {
                string[] str = line.Split('-');
                string start = str[0];
                string end = str[1];
                string city = str[2];
                string info = fileName;

                DataRow row = dataTable.NewRow();//将数据存入dataTable 中
                row["start"] = start;
                row["end"] = end;
                row["city"] = city;
                row["info"] = info;
                dataTable.Rows.Add(row);
            }

            using (SqlBulkCopy bulkcopy = new SqlBulkCopy(@"Server=.;Database=Data1200;Uid=sa;Pwd=;"))
            {
                bulkcopy.DestinationTableName = "T_PhoneInfo";//数据库中需要导入的表名
                bulkcopy.ColumnMappings.Add("start""StartNO");//前面参数是内存中表名称,后面是数据库字段名称
                bulkcopy.ColumnMappings.Add("end""EndNO");
                bulkcopy.ColumnMappings.Add("city""City");
                bulkcopy.ColumnMappings.Add("info""Info");
                bulkcopy.WriteToServer(dataTable);//把数据写入到数据库
            }
        }
    }

*-------------------------------------------------------------------------------------------------------------------------------------------* 每一段代码是一级小阶梯,我每爬上一级,就更脱离畜生而上升到人类,更接近美好生活!
原文地址:https://www.cnblogs.com/Murray/p/3083646.html