好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SqlBulkCopy的使用

void btn_import_Click( object sender, RoutedEventArgs e) { // 先读取文件 // 打开对话框,选择文件。 OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = " 文本文件|*.txt " ; if (ofd.ShowDialog()== false ) { return ; } string [] lines = File.ReadLines(ofd.FileName,Encoding.Default).ToArray(); DateTime startTime = DateTime.Now; // 新建表 DataTable dtTable = new DataTable(); // 给表添加列 dtTable.Columns.Add( " StartTellName " ); dtTable.Columns.Add( " TellType " ); dtTable.Columns.Add( " TellArea " ); // 遍历每一行数据,处理数据,添加到行(DataRow)中 foreach ( string line in lines) { string [] strs = line.Split( ‘ \t ‘ ); // \t制表符 string startTellNum = strs[ 0 ]; string tellType = strs[ 1 ].Trim( ‘ " ‘ ); // 去除两边的" string tellArea = strs[ 2 ].Trim( ‘ " ‘ ); DataRow row = dtTable.NewRow(); row[ " StartTellName " ] = startTellNum; // 给字段赋值 row[ " TellType " ] = tellType; row[ " TellArea " ] = tellArea; dtTable.Rows.Add(row); // 添加到一行中 } // 获取配置文件中连接字符串 string connstr = ConfigurationManager.ConnectionStrings[ " connstr " ].ConnectionString; // SqlBulkCopy是实现IDisposable接口的,所以必须用using using (SqlBulkCopy bulk = new SqlBulkCopy(connstr)) { bulk.DestinationTableName = " T_TellNum " ; // 指定表名 // 本地列名与数据库列名建立连接 bulk.ColumnMappings.Add( " StartTellName " , " starttellnum " ); bulk.ColumnMappings.Add( " TellType " , " telltype " ); bulk.ColumnMappings.Add( " TellArea " , " tellarea " ); // 把dtTable的数据写到数据库 bulk.WriteToServer(dtTable); } TimeSpan ts = DateTime.Now - startTime; // 计算时间 MessageBox.Show(ts.ToString()); }

#code

4、数据库字段

  id bigint primary key,

     starttellnum nvarchar(30),

     telltype  nvarchar(30),

     tellarea  nvarchar(30),

5、可能遇到的问题

    

    解决办法:请检查建立连接字段时字段名是否都正确。

 

  

   解决方法

    1,首先检查数据库表的字段是否过小

    2,检查数据中是否有类似单引号的数据,做一下过滤

SqlBulkCopy的使用

标签:

查看更多关于SqlBulkCopy的使用的详细内容...

  阅读:23次

上一篇: 连接SQLServer异常

下一篇:JDBC 增删改查