當前位置:首頁 » 編程語言 » 批量寫入至sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

批量寫入至sql

發布時間: 2022-07-07 09:54:51

㈠ 轉載:如何將Excel數據批量導入sql資料庫

string connString = server=localhost;uid=sa;pwd=sqlgis;database=master;
System.Windows.Forms.OpenFileDialog fd = new OpenFileDialog();
if (fd.ShowDialog() == DialogResult.OK){TransferData(fd.FileName, sheet1″, connString);}}public void TransferData(string excelFile, string sheetName, string connectionString){DataSet ds = new DataSet();try{//獲取全部數據
string strConn = Provider=Microsoft.Jet.OLEDB.4.0; + Data Source= + excelFile + ; + Extended Properties=Excel 8.0;;
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = ;
OleDbDataAdapter myCommand = null;
strExcel = string.Format(select * from [{0}$], sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(ds, sheetName);
//如果目標表不存在則創建
string strSql = string.Format(if object_id(’{0}’) is null create table {0}(, sheetName);
foreach (System.Data.DataColumn c in ds.Tables[0].Columns){strSql += string.Format([{0}] varchar(255),, c.ColumnName);}strSql = strSql.Trim(’,') + );
using (System.Data.SqlClient.SqlConnection sqlconn = new System.Data.SqlClient.SqlConnection(connectionString)){sqlconn.Open();
System.Data.SqlClient.SqlCommand command = sqlconn.CreateCommand();
command.CommandText = strSql;
command.ExecuteNonQuery();
sqlconn.Close();}//用bcp導入數據
using (System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(connectionString)){bcp.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(bcp_SqlRowsCopied);
bcp.BatchSize = 100;//每次傳輸的行數
bcp.NotifyAfter = 100;//進度提示的行數
bcp.DestinationTableName = sheetName;//目標表

㈡ oralce資料庫怎麼批量導入sql

1:運行cmd進入命令行界面
2:進入到存放批量sql的文件夾下面
3:輸入命令 sqlplus 資料庫名/密碼@資料庫 按回車鍵
4:輸入spool 指定路徑:\a.log 按回車鍵 (此步驟的主要作用就是追蹤批量執行sql的日誌,路徑隨便寫,只要能找到就行,a.log可以隨便起名,但是必須要.log後綴)
5:@start.sql 按回車鍵(在批量sql文件夾下寫一個文件,名字叫start.sql,其中在這個文件裡面寫批量sql的文件名)
具體格式如下:@@sql的文件名.sql;
@@sql的文件名2.sql;
.......
6:spool off (此時a.log中所有日誌已經寫入完畢)
7:exit 退出sqlplus

當然只有一個sql文件,但是裡面有多個insert語句,數據量非常大,此時也可以在命令狀態下執行,前4步是一樣的,第五步就是@文件名.sql;

㈢ mysql批量插入數據怎麼寫sql語句呢

如果就一個name欄位並且ID是自增的話就這樣
INSERT INTO tablename VALUES('name1','name2','name3','name4')
否則就這樣
INSERT INTO tablename VALUES(('1','name1'),('3','name2'),('2','name3'),('8','name4'))
當然也可以這樣寫,上面的是簡化的
INSERT INTO tablename (name)VALUES ('name1','name2','name3','name4')
INSERT INTO tablename (id,name) VALUES (('1','name1'),('3','name2'),('2','name3'),('8','name4'))

㈣ 如何正確的進行大規模SQL語句的批量操作

在使用Statement的批量SQL命令操作的時候,一定要注意寫入到內存中命令列表的SQL語句的數量級,在小規模的數據量下,可以將所有SQL語句添加到命令列表中,一次性執行executeBatch()方法,但是在大規模數據量的情況下,就應該分批將SQL語句添加到命令列表中,並在每次調用executeBatch()方法後,調用clearBatch()方法將命令列表中的SQL語句清空,注意了,一定要記得調用clearBatch()方法清空命令列表,不然即使分批添加SQL語句,一樣要「out
of
memory」。同時由這個問題,我們也可以引申開來考慮考慮在編寫將數據保存在內存中的操作的時候,也應該注意實際系統運行環境的內存配置所能支持的數據量,千萬不能不管三七二十一的將數據一股腦兒往內存里塞。

㈤ SQL批量插入數據

一、針對批量插入數據,如果量不是太多,可以多條SQL語句運行就可以了,

類似下面的語句,當然可以使用excel 編輯後,復制到查詢器中運行,

insert into table(a,b) values('1','a')

insert into table(a,b) values('2','b')

insert into table(a,b) values('3','c')


二、大量數批量插入,即數據表的移植,數據備份轉換之類的,就需要工具,比如MSSQL的DTS工具,pb的數據通道 等等。這里介紹一下 DTS工具。

㈥ 資料庫中我想要批量插入數據SQL語句怎麼寫。

批量插入不要用循環,直接sql語句就可以了:
insert
into
table
(`field`,
`field2`)
values
('val',
'val2'),
('v2',
'v3');
這樣就可以了,上面的sql批量了2條,以此類推,中間隔半形逗號即可。
我就暈了,你不會用程序處理啊,用一個array_map然後implode不久可以了嗎?

㈦ 解析txt文件,將文件中明細批量插入mysql資料庫表中,怎麼做

批量寫入,提高效率,最簡單直接的辦法就是:

txt文本
作為一個數據源處理,而不是文件讀取,這樣,通過數據源,就可以直接批量讀取為一個recordset,然後,直接寫入資料庫了。
ps:這要求
文本文件格式
非常規律,如果不行,自己嘗試在內存裡面構建recordset吧。

㈧ 請教如何將excle上面的數據批量導入至sql2008資料庫

在查詢分析器里,直接寫 SQL語句:
如果是導入數據到現有表,則採用形式
INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
如果是導入數據並新增表,則採用形式
SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
SQL2005中直接可以實現導入功能 SQL2008不知道可不可以。 操作過程如下:
第一步:登錄到 SQL Server Management Studio
第二步:在 「對象資源管理器 」中右鍵單擊 「管理 」,在彈出列表中單擊 「導入數據 」
第三步:在 「導入向導 」對話框中單擊 「下一步 」,進入到 「選擇數據源 」對話框,在 「數據源 」列表中選擇 「Microsoft Excel 」,同時選擇相應的 Excel 文檔,完成後單擊 「下一步 」(一定要勾選該對話框中的 「首行包含列名稱 」,因此它是將 Excel文檔中的列標題為資料庫表中的列項標題)
第四步:指定目標資料庫服務,依次單擊 「下一步 」。。。。至到 「完成 」
第五步:重新打到 SQL Server Management Studio,進入到導入的資料庫表,可以發現所導入的 Excel文檔數據。

㈨ 如何將批量的數據存入SQL資料庫中

在一些數據量比較大,而且操作資料庫頻繁的。此時需要將數據表datatable整塊的存入資料庫中。


不多說,直接上代碼:

首先得新建一個資料庫

DataTable once_rec_date = new DataTable();

這個資料庫得跟目標資料庫的列的位置和大小都得一樣。特別是類型,和位置。

就是列的位置和目標資料庫的位置,順序得 一模一樣。因為都是塊存儲,所以地址什麼的都得一樣,千萬不能少一列,自增列可以空在那邊。

在初始化中初始化該表

<prename="code"class="csharp">once_rec_date.Columns.Add("id",typeof(int));
once_rec_date.Columns.Add("RevData_cmd",typeof(int));
once_rec_date.Columns.Add("Node",typeof(int));
once_rec_date.Columns.Add("Data",typeof(String));
once_rec_date.Columns.Add("Ssingle",typeof(int));
once_rec_date.Columns.Add("IsWiressData",typeof(int));
once_rec_date.Columns.Add("Datatime",typeof(DateTime));
once_rec_date.Columns.Add("Receivetime",typeof(DateTime));
once_rec_date.Columns.Add("IsMatch",typeof(int));</pre><br>
<p></p>
<pre></pre>
<spanstyle="font-size:18px">初始化之後,在程序中填充該datatable<br>
</span><br>
<p></p>
<p></p><prename="code"class="csharp">DataRownewrow=once_rec_date.NewRow();
newrow["RevData_cmd"]=cmd;
newrow["Node"]=Nodeid;
newrow["Data"]=datastring;
newrow["IsWiressData"]=IsWiress;
newrow["Ssingle"]=1;
newrow["Datatime"]=datatime;
newrow["Receivetime"]=time1;
newrow["IsMatch"]=3;
once_rec_date.Rows.Add(newrow);
returntrue;</pre><br>
再在程序結束的時候調用下面的函數<prename="code"class="csharp"style="background-color:rgb(255,255,255);">AddDatatableToSQL</pre><p></p>
<p>該函數主要實現塊存儲,整datatable</p>
<p><br>
</p>
<p></p>
<prename="code"class="html"style="background-color:rgb(255,255,255);font-size:18px;"></pre><prename="code"class="csharp">///-----------------------------------------------------------------*
///<summary>*
///功能:將數據表批量存入到資料庫中*
///函數調用:SqlBulkCopy*
///</summary>*
///<paramname="frameStruct">數據類型</param>*
///-----------------------------------------------------------------*
publicboolAddDatatableToSQL(DataTableScrTable)
{
using(SqlConnectionthisConn=newSqlConnection(ConnectionStr))
{
try
{
if(thisConn.State==ConnectionState.Closed)
{
thisConn.Open();
}
using(SqlBulkCopybulkCopy=newSqlBulkCopy(thisConn))
{
bulkCopy.DestinationTableName="RevData";//這里的資料庫名字可以更改,或者通過傳參傳進去.
try
{
bulkCopy.WriteToServer(ScrTable);
returntrue;
}
catch
{
returnfalse;

}
finally
{
thisConn.Close();
}
}
}
catch
{

}
}//ensing
returnfalse;


}
</pre><br>
<p><br>
</p>

㈩ 如何用SQL語句將數據批量插入資料庫

這種情況使用xml來進行批量插入.
1.asp.net頁面上抓取數據,轉換成xml字元串
2.將這個字元串作為參數傳給存儲過程
3.存儲過程里,將這個xml讀取成臨時表
4.整個臨時表插入到目標數據表中,這個過程可以使用sql
server的事務;其實在這里用不用事務問題都不大了,因為存儲過程出錯,數據插不進去的,還會拋出異常到asp.net後台,讓後台進行處理異常.
您用游標或asp.net代碼來循環,速度會比較慢的.