志在指尖
用双手敲打未来

后台通过http post 调用 webservice 的方法

当想在数据库中刺进大量数据时,运用insert不仅效率低,而且会导致一系列的数据库性能问题
当运用insert语句进行刺进数据时。我运用了两种方法:
每次刺进数据时,都只刺进一条数据库,这个会导致每次刺进数据时不断翻开封闭数据库链接,导致效率过低(最差)
运用拼接字符串的方法来进行批量刺进数据,但是运用StringBuilder会占用极大的内存
以上方法对于批量刺进数据都不是一个好的选择,针对这种状况我运用了SqlBulkCopy
sqlbulkCopy:将其它数据源批量加载sqlserver表,便是能够将其它数据源刺进到数据库中c#
示例代码:
创立测验User表:
1CREATETABLE[dbo].[Users](2[Id][uniqueidentifier]NOTNULL,3[Name][nvarchar](100)NULL,4[Gender][int]NULL,5[Age][int]NULL,6[CityId][int]NULL,7[OpTime][datetime]NULL,8CONSTRAINT[PK_Users]PRIMARYKEYCLUSTERED([Id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]9)ON[PRIMARY]
然后界说一个与表映射的Model,因SqlBulkCopy的特性,界说的Model有必要具有与表所有的字段对应的属性:也便是界说的model,需要跟数据表的字段次序相同,因为转为datatable时会依照次序刺进
1publicenumGender2{3Man=1,4Woman5}67publicclassUser8{9publicGuidId{get;set;}10publicstringName{get;set;}11publicGender?Gender{get;set;}12publicint?Age{get;set;}13publicint?CityId{get;set;}14publicDateTime?OpTime{get;set;}15}
制造些数据转为DataTable:
List转为DataTable地址:https://www.cnblogs.com/zhangShanGui/p/12038563.html
1ListusersToInsert=newList();2usersToInsert.Add(newUser(){Id=Guid.NewGuid(),Name=”so1″,Gender=Gender.Man,Age=18,CityId=1,OpTime=DateTime.Now});3usersToInsert.Add(newUser(){Id=Guid.NewGuid(),Name=”so2″,Gender=Gender.Man,Age=19,CityId=2,OpTime=DateTime.Now});4usersToInsert.Add(newUser(){Id=Guid.NewGuid(),Name=”so3″,Gender=Gender.Man,Age=20,CityId=3,OpTime=DateTime.Now});5usersToInsert.Add(newUser(){Id=Guid.NewGuid(),Name=”so4″,Gender=Gender.Man,Age=21,CityId=4,OpTime=DateTime.Now});67vardata=DataTableExtensions.ToDataTable(usersToInsert);8using(SqlBulkCopybulkCopy=newSqlBulkCopy(ConnectionString))9{10bulkCopy.DestinationTableName=11″Users”;12try13{14bulkCopy.WriteToServer(data,DataRowState.Added);15}16catch(Exceptionex)17{18Console.WriteLine(ex.Message);19}20}

未经允许不得转载:IT技术网站 » 后台通过http post 调用 webservice 的方法
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载