在ASP.NET中,向資料庫批量插入資料

來源:互聯網
上載者:User

在我們平時的開發過程中,經常要向資料庫插入資料,有時可能要進行很多次類似的操作,比如向資料庫中的同一個表同時插入若干資料,即批量插入資料。

向資料庫中批量插入資料,可以將若干條資料一次插入道資料庫,提高程式的執行效率,也可以減少我們的工作量。

批量插入資料,可以採用一下兩種方法。

一、利用事務(transaction)

‘定義執行批量插入資料的函數,參數為insert SQL語句的數組

sub ExeTransaction (Byval Sqlstrlist as string())

dim Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Tax.mdb"

dim trans as OledbTransaction=Nothing

try

if conn.State=connectionstate.closed then

conn.open()

end if

dim cmd as oledbCommand=new oledbcommand()

cmd.connection=conn

cmd.commandtype=commandtype.text

trans=conn.begintransaction()

cmd.transaction=trans

dim I as integer

for I=0 to Sqlstrlist.GetupperBound(0)

cmd.commandtext= Sqlstrlist(i) ‘取得參數(數組)中的值

cmd.executenonquery()

next

trans.commit()

catch ex as oledbexception

trans.rollback()

fanlly

conn.close()

end try

end sub

二、利用dataset

public sub Insert()

‘建立datatable資料來源

dim dt as DataTable=New DataTable()

dim dr as DataRow

dt.columns.add(new DataColumn(“name”))

dim j as Integer

for j =0 to 10

dr=dt.newrow()

dr(0)=”name”+j.tostring

dt.rows.add(dr)

next

dim Conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Tax.mdb"

conn.open()

dim MyAdapter as Oledbdataadapter=new OleDataAdapter()

….

dim cmd as Oledbcommand=New Oledbcommand(“Insert Into table(name) values (@name)”,conn)

cmd.parameters.item(“@name”).SourceColumns=dt.columns(“name”).columnsName

myadapter.update(dt)

conn.close()

end sub

利用以上的兩種方法,都可以完成向資料庫批量插入資料。

--下面是在SQL中,直接用SQL語句讀取幾種常見的檔案格式中的資料

--/* 文字檔
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Text;HDR=NO;DATABASE=C:/' --c:/是目錄
,aa#txt)     --aa#txt是文字檔名aa.txt
--*/
--/* Excel檔案
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 8.0;IMEX=1;HDR=YES;DATABASE=c:/test.xls' --c:/test.xls是excel檔案名稱
,sheet1$) 
--/* dBase IV檔案
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'dBase IV;DATABASE=C:/'   --c:/是目錄
,'select * from [客戶資料4.dbf]') --客戶資料4.dbf是檔案名稱
--*/
--/* dBase III檔案
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'dBase III;DATABASE=C:/'
,'select * from [客戶資料3.dbf]')
--*/
--/* FoxPro 資料庫
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/', --c:/是目錄
'select * from [aa.DBF]')  --aa.dbf是檔案名稱
/*--說明:
SourceDB=c:/    c:/是dbf檔案的存放目錄
[aa.DBF]        是dbf檔案名稱
--*/

bulk insert
有一檔案[D:/msql/bulk.txt]內容如下.以空格分隔.
         01 gwf dongguang CSDN.net
         02 sxl dongguangeric CSDN.net
--建表:
if object_id('tbulk') is not null drop table tbulk
 create table tbulk(id int,name varchar(100),addr varchar(100),tag varchar(10))
Go
--批次處理
bulk insert tbulk from 'D:/msql/bulk.txt'
 with (
  fieldterminator=' '  --資料行分隔符號
--  rowterminator='/n'          --行分隔字元
      )
--結果
select * from tbulk

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.