Welcome 微信登录

首页 / 网页编程 / ASP.NET / Asp.Net使用Bulk实现批量插入数据

本文实例讲述了Asp.Net使用Bulk实现批量插入数据的方法,分享给大家供大家参考之用。具体方法如下:

主要功能代码如下:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Diagnostics;using System.Data;using System.Data.SqlClient;using System.Configuration;using Fx678Member.Framework.Exceptions; namespace MeiYuanJinYe.Admin.HttpHandler{/// <summary>/// CreateAccount 的摘要说明/// </summary>public class CreateAccount : IHttpHandler{ public void ProcessRequest(HttpContext context){context.Response.ContentType = "text/plain";Guid classRoomId = Guid.Parse(context.Request["ClassRoomId"]);int Count = int.Parse(context.Request["Count"]);DataTable dt = GetTableSchema();Random ran = new Random();for (int i = 0; i < Count; i++)//循环往DataTable中赋值{DataRow r = dt.NewRow();r[1] = ran.Next(10000000, 100000000);r[2] = ran.Next(10000000, 100000000);r[3] = classRoomId;r[4] = DateTime.Now;r[5] = 1;dt.Rows.Add(r);}BulkToDB(dt);context.Response.Write(BulkToDB(dt) ? "ok" : "error");context.Session["dataTable"] = dt;} public void BulkToDB(DataTable dt){SqlConnection sqlConn = new SqlConnection(ConfigurationManager.AppSettings["ConnString"]);SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);bulkCopy.DestinationTableName = "ClassRoomAccount";//数据库表名bulkCopy.BatchSize = dt.Rows.Count;try{sqlConn.Open();if (dt != null && dt.Rows.Count != 0)bulkCopy.WriteToServer(dt);}catch (Exception ex){new AppException("批量生成直播室账号异常", ex);}finally{sqlConn.Close();if (bulkCopy != null)bulkCopy.Close();}} public DataTable GetTableSchema(){DataTable dt = new DataTable();dt.Columns.AddRange(new DataColumn[]{ new DataColumn("AccountId",typeof(int)), new DataColumn("AccountName",typeof(string)), new DataColumn("Password",typeof(string)),new DataColumn("ClassRoomId",typeof(Guid)),new DataColumn("AddDate",typeof(DateTime)),new DataColumn("IsActive",typeof(int))});//数据库表结构return dt;}public bool IsReusable{get{return false;}}}}

希望本文所述对大家的asp.net程序设计有所帮助。