Asp.Net使用Bulk实现批量插入数据
本文实例讲述了Asp.Net使用Bulk实现批量插入数据的方法,分享给大家供大家参考之用。具体方法如下:
主要功能代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Diagnostics;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
usingFx678Member.Framework.Exceptions;
namespaceMeiYuanJinYe.Admin.HttpHandler
{
///<summary>
///CreateAccount的摘要说明
///</summary>
publicclassCreateAccount:IHttpHandler
{
publicvoidProcessRequest(HttpContextcontext)
{
context.Response.ContentType="text/plain";
GuidclassRoomId=Guid.Parse(context.Request["ClassRoomId"]);
intCount=int.Parse(context.Request["Count"]);
DataTabledt=GetTableSchema();
Randomran=newRandom();
for(inti=0;i<Count;i++)//循环往DataTable中赋值
{
DataRowr=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;
}
publicvoidBulkToDB(DataTabledt)
{
SqlConnectionsqlConn=newSqlConnection(ConfigurationManager.AppSettings["ConnString"]);
SqlBulkCopybulkCopy=newSqlBulkCopy(sqlConn);
bulkCopy.DestinationTableName="ClassRoomAccount";//数据库表名
bulkCopy.BatchSize=dt.Rows.Count;
try
{
sqlConn.Open();
if(dt!=null&&dt.Rows.Count!=0)
bulkCopy.WriteToServer(dt);
}
catch(Exceptionex)
{
newAppException("批量生成直播室账号异常",ex);
}
finally
{
sqlConn.Close();
if(bulkCopy!=null)
bulkCopy.Close();
}
}
publicDataTableGetTableSchema()
{
DataTabledt=newDataTable();
dt.Columns.AddRange(newDataColumn[]{
newDataColumn("AccountId",typeof(int)),
newDataColumn("AccountName",typeof(string)),
newDataColumn("Password",typeof(string)),
newDataColumn("ClassRoomId",typeof(Guid)),
newDataColumn("AddDate",typeof(DateTime)),
newDataColumn("IsActive",typeof(int))
});//数据库表结构
returndt;
}
publicboolIsReusable
{
get
{
returnfalse;
}
}
}
}
希望本文所述对大家的asp.net程序设计有所帮助。
热门推荐
8 天仓节祝福语简短
10 中秋简短祝福语送员工
11 精简短句生日祝福语
12 送老师新春祝福语简短
13 感恩跨年祝福语大全简短
14 经典简短的祝酒祝福语
15 南宁招生老师祝福语简短
16 新娘生孩子祝福语简短
17 元旦祝福语简短小学
18 今天孩子高考祝福语简短