预览加载中,请您耐心等待几秒...
在线预览结束,喜欢就下载吧,查找使用更方便
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
采用SqlBulkCopy向数据库批量插入数据(大数据效果显著)我们平时的开发过程中,经常要向数据库插入数据,有时可能要进行很多次类似的操作,比如向数据库中的同一个表同时插入若干数据,即批量插入数据。向数据库中批量插入数据,可以将若干条数据一次插入道数据库,提高程序的执行效率,也可以减少我们的工作量。批量插入数据,可以采用以下两种方法。一、利用事务(transaction)‘定义执行批量插入数据的函数,参数为insertSQL语句的数组subExeTransaction(ByvalSqlstrlistasstring())dimConnAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Tax.mdb"dimtransasOledbTransaction=Nothingtryifconn.State=connectionstate.closedthenconn.open()endifdimcmdasoledbCommand=newoledbcommand()cmd.connection=conncmd.commandtype=commandtype.texttrans=conn.begintransaction()cmd.transaction=transdimIasintegerforI=0toSqlstrlist.GetupperBound(0)cmd.commandtext=Sqlstrlist(i)‘取得参数(数组)中的值cmd.executenonquery()nexttrans.commit()catchexasoledbexceptiontrans.rollback()fanllyconn.close()endtryendsub二、利用datasetpublicsubInsert()‘建立datatable数据源dimdtasDataTable=NewDataTable()dimdrasDataRowdt.columns.add(newDataColumn(“name”))dimjasIntegerforj=0to10dr=dt.newrow()dr(0)=”name”+j.tostringdt.rows.add(dr)nextdimConnAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Tax.mdb"conn.open()dimMyAdapterasOledbdataadapter=newOleDataAdapter()….dimcmdasOledbcommand=NewOledbcommand(“InsertIntotable(name)values(@name)”,conn)cmd.parameters.item(“@name”).SourceColumns=dt.columns(“name”).columnsNamemyadapter.update(dt)conn.close()endsub利用以上的两种方法,都可以完成向数据库批量插入数据。\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\如果你使用的asp.net2.0,你可以使用SqlBulkCopy批量导入数据usingSystem.Data.SqlClient;classProgram{staticvoidMain(){stringconnectionString=GetConnectionString();//OpenasourceConnectiontotheAdventureWorksdatabase.using(SqlConnectionsourceConnection=newSqlConnection(connectionString)){sourceConnection.Open();//Performaninitialcountonthedestinationtable.SqlCommandcommandRowCount=newSqlCommand("SELECTCOUNT(*)FROM"+"dbo.BulkCopyDemoMatchingColumns;",sourceConnection);longcountStart=System.Convert.ToInt32(commandRowCount.ExecuteScalar());Console.WriteLine("Startingrowcount={0}",countStart);//Getdatafrom