zoukankan      html  css  js  c++  java
  • 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);//把数据写入到数据库
                }
            }
        }

    *-------------------------------------------------------------------------------------------------------------------------------------------* 每一段代码是一级小阶梯,我每爬上一级,就更脱离畜生而上升到人类,更接近美好生活!
  • 相关阅读:
    iOS push
    iOS Beta 升级或降级
    Charles SSL
    看懂UML类图和时序图
    UML示例图 zt
    一个二维码-->网址-->iOS/Android跳转
    获取Shell脚本当前的目录
    编辑请求内容 Charles
    adjustsFontSizeToFitWidth 与 NSLineBreakByCharWrapping 无法共用
    js数据类型
  • 原文地址:https://www.cnblogs.com/Murray/p/3083646.html
Copyright © 2011-2022 走看看