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

    *-------------------------------------------------------------------------------------------------------------------------------------------* 每一段代码是一级小阶梯,我每爬上一级,就更脱离畜生而上升到人类,更接近美好生活!
  • 相关阅读:
    E
    D
    Npp ChangeLog
    c++ 书籍(zz)
    再好的工作是为了更好的生活
    如何将JPG格式的图片转换成PNG格式
    点分治
    团体程序设计天梯赛(CCCC) L3021 神坛 的一些错误做法(目前网上的方法没一个是对的) 和 一些想法
    团体程序设计天梯赛(CCCC) L3019 代码排版 方法与编译原理密切相关,只有一个测试点段错误
    团体程序设计天梯赛(CCCC) L3015 球队“食物链” 状态压缩
  • 原文地址:https://www.cnblogs.com/Murray/p/3083646.html
Copyright © 2020-2023  润新知