/// <summary> /// 建立缓存表 /// </summary> /// <returns></returns> #region 建立缓存表 public static DataTable GetDataTable() { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[]{ new DataColumn("usrName",typeof(string)) }); return dt; } #endregion /// <summary> /// 将文本文件的数据缓存到表中 /// </summary> /// <param name="filename">文件名</param> /// <returns></returns> #region 缓存文本文件的数据 public DataTable inertDataToDt(string filename) { System.IO.StreamReader objReader = new StreamReader(fileName, Encoding.GetEncoding("GB2312")); string sLine = ""; string usrName= ""; DataTable dt = GetDataTable(); while (sLine != null) { sLine = objReader.ReadLine(); if (sLine != null) { sLine = sLine.Replace("/t", ","); string[] sArray = sLine.Split(','); if (sArray.Length == 9) { usrName = sArray[0]; DataRow r = dt.NewRow(); r[0] = usrName; dt.Rows.Add(r); } } } objReader.Close(); return dt; } #endregion ///<summary> ///利用SqlBulkCopy一次性把Table数据插入到数据库 ///</summary> ///<param name="dt"></param> /// <returns></returns> #region 批量插入数据 public static void BulkToDB(DataTable dt) { SqlConnection sqlConn = new SqlConnection( ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString); SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn); bulkCopy.DestinationTableName = "tableName"; //要插入表的表名 bulkCopy.BatchSize = dt.Rows.Count; try { sqlConn.Open(); if (dt != null && dt.Rows.Count != 0) { bulkCopy.WriteToServer(dt); } } catch (Exception ex) { throw ex; } finally { sqlConn.Close(); if (bulkCopy != null) { bulkCopy.Close(); } } } #endregion