ASP.NET怎么实现数据的批量录入?

ASP.NET怎么实现数据的批量录入?,第1张

有点多,给分吧

public bool AddReport(Ap_Report model, List<Ap_ReportPrduct>list)

{

SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString)

conn.Open()

SqlCommand cmd = conn.CreateCommand()

SqlTransaction tran = conn.BeginTransaction()

cmd.Transaction = tran

SqlParameter[] par

SqlParameter id

try

{

SqlParameter activityId

if (model.ActivityId == null)

{

activityId = new SqlParameter("@ActivityId", DBNull.Value)

}

else

{

activityId = new SqlParameter("@ActivityId", model.ActivityId)

}

SqlParameter CreateTime

if (model.CreateTime == null)

{

CreateTime = new SqlParameter("@CreateTime", DBNull.Value)

}

else

{

CreateTime = new SqlParameter("@CreateTime", model.CreateTime)

}

SqlParameter BeginTime

if (model.ActivityBeginTime == null)

{

BeginTime = new SqlParameter("@ActivityBeginTime", DBNull.Value)

}

else

{

BeginTime = new SqlParameter("@ActivityBeginTime", model.ActivityBeginTime)

}

SqlParameter EndTime

if (model.ActivityEndTime == null)

{

EndTime = new SqlParameter("@ActivityEndTime", DBNull.Value)

}

else

{

EndTime = new SqlParameter("@ActivityEndTime", model.ActivityEndTime)

}

par = new SqlParameter[]

{

new SqlParameter("@ID",model.ID),

activityId,

new SqlParameter("@AnotherName",model.AnotherName),

new SqlParameter("@ShopId",model.ShopId),

CreateTime,

new SqlParameter("@IsFreeShip",model.IsFreeShip),

BeginTime,

EndTime,

new SqlParameter("@IsPass",model.IsPass),

new SqlParameter("@UserName",model.Usr),

new SqlParameter("@IsDel",model.IsDel),

}

cmd.CommandText = DalConstInfo.Report_Add

cmd.Parameters.Clear()

cmd.Parameters.AddRange(par)

cmd.ExecuteNonQuery()

SqlParameter ActivityPrices

SqlParameter ActivityCounts

for (int i = 0i <list.Counti++)

{

cmd.CommandText = DalConstInfo.ReportProduct_Add

if(list[i].ActivityPrices==null)

{

ActivityPrices= new SqlParameter("@ActivityPrices",DBNull.Value)

}

else

{

ActivityPrices = new SqlParameter("@ActivityPrices", list[i].ActivityPrices)

}

if (list[i].ActivityCounts == null)

{

ActivityCounts = new SqlParameter("@ActivityCounts", DBNull.Value)

}

else

{

ActivityCounts = new SqlParameter("@ActivityCounts", list[i].ActivityCounts)

}

par = new SqlParameter[]

{

new SqlParameter("@ReportId",list[i].ReportId),

new SqlParameter("@ProKeys",list[i].ProKeys),

new SqlParameter("@ShortNames",list[i].ShortNames),

new SqlParameter("@SalePrices",list[i].SalePrices),

ActivityPrices,

ActivityCounts,

new SqlParameter("@IsDel",list[i].IsDel),

}

cmd.Parameters.Clear()

cmd.Parameters.AddRange(par)

cmd.ExecuteNonQuery()

}

tran.Commit()

return true

}

catch

{

tran.Rollback()

return false

}

finally

{

conn.Close()

cmd.Dispose()

tran.Dispose()

}

}

分析iis日志,解决掉5xx(服务代码错误),955(页面加载过慢)

引入分布式缓存

数据库读写分离

网站优化方案大方向都很固定,具体还是根据自己网站的实际情况。可以看看淘宝,京东出的技术书。里面有他们网站的架构,各种问题有对应的解决方案,可以借鉴。

把所有得记录存入一个集合,在用事务一次性存入数据库 参考代码如下(仅供参考):

SqlConnection myConnection = new SqlConnection("Data Source=localhostInitial Catalog=NorthwindIntegrated Security=SSPI")

myConnection.Open()

SqlTransaction myTrans = myConnection.BeginTransaction()//使用New新生成一个事务

SqlCommand myCommand = new SqlCommand()

myCommand.Transaction = myTrans

try

{

for(....)//这儿做循环插入

{

myCommand.CommandText = "Update Address set location='23 rain street' where userid='0001'"

myCommand.ExecuteNonQuery()

}

myTrans.Commit()

}

catch(Exception e)

{

myTrans.Rollback()

}

finally

{

myConnection.Close()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11342506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存