• 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);//把数据写入到数据库
                }
            }
        }

    *-------------------------------------------------------------------------------------------------------------------------------------------* 每一段代码是一级小阶梯,我每爬上一级,就更脱离畜生而上升到人类,更接近美好生活!
  • 相关阅读:
    【css】 text-align 居中导航
    css
    css
    css
    css : object-fit 兼容 ie 的解决方案
    Linux下Nginx配置多个站点
    Dart之环境搭建
    酒店行业的OTA
    主流消息队列MQ比较,MQ的4类应用场景
    消息队列Kafka、RocketMQ、RabbitMQ的优劣势比较
  • 原文地址:https://www.cnblogs.com/Murray/p/3083646.html
Copyright © 2020-2023  润新知