public ActionResult SqlBulkTest() { DataTable dt = GetTableSchema(); string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); for (int i = 0; i <= 10; i++) { DataRow dr = dt.NewRow(); dr[0] = "Title" + i.ToString() + "-" + time; dr[1] = "Keyword" + i.ToString() + "-" + time; dr[2] = "Description" + i.ToString() + "-" + time; dr[3] = "Introduction" + i.ToString() + "-" + time; dr[4] = "ContentText" + i.ToString() + "-" + time; dt.Rows.Add(dr); } BulkToDB(dt); return View(); } public DataTable GetTableSchema() { DataTable dt = new DataTable(); dt.Columns.AddRange(new DataColumn[] { //new DataColumn("Id",typeof(string)),//主键列,不用赋值 new DataColumn("Title",typeof(string)), new DataColumn("Keyword",typeof(string)), new DataColumn("Description",typeof(string)), new DataColumn("Introduction",typeof(string)), new DataColumn("ContentText",typeof(string))}); return dt; } public void BulkToDB(DataTable dt) { try { string dbConnectionStr = ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString; if (dt != null && dt.Rows.Count != 0) { using (SqlConnection conn = new SqlConnection(dbConnectionStr)) { SqlBulkCopy bulkCopy = new SqlBulkCopy(conn); bulkCopy.DestinationTableName = "AboutUs";//表名 ///ColumnMappings官方说明:列映射“定义数据源中的列”和“目标表中的列”之间的关系 ///自己理解:第一个参数是GetTableSchema方法中定义的列顺序,第二个参数是数据库中列的顺序 bulkCopy.ColumnMappings.Add(0, 1); //Title bulkCopy.ColumnMappings.Add(1, 2); //Keyword bulkCopy.ColumnMappings.Add(2, 3); //Description bulkCopy.ColumnMappings.Add(3, 4); //Introduction bulkCopy.ColumnMappings.Add(4, 5); //ContentText bulkCopy.BatchSize = dt.Rows.Count; conn.Open(); bulkCopy.WriteToServer(dt); } } } catch (Exception ex) { } }
C# SqlBulkCopy批量向数据库添加数据
猜你喜欢
转载自blog.csdn.net/kingcruel/article/details/78740377
今日推荐
周排行