導航:首頁 > 編程大全 > 怎麼批量更新資料庫數據

怎麼批量更新資料庫數據

發布時間:2022-09-11 05:03:40

1. 如何實現資料庫的批量插入與更新~~

幹嘛弄這么麻煩啊?數據量很大嗎?要是很大的話才需要你說的那種方式做壓縮.然後,你需要對得到的dataset根據其欄位名組合成sql
更新到本地資料庫.但是這個台麻煩了.
簡單的辦法是.在本地資料庫B上建立對遠程資料庫A的DBlink.然後對遠程資料庫上的表在本地建立別名.
那麼你訪問別名就和訪問本地表一樣簡單.只要你會sql
搞個資料庫的批量本地插入還是很簡單的.因為不知道你是什麼資料庫.因此你可以插下對應資料庫DBLINk的資料.不過這種方式就是沒法對數據壓縮.可能會佔用點帶寬

2. asp如何批量更新資料庫數據

第一個a.asp頁面代碼
<script language=javascript>
function unselectall()
{
if(document.th_edit.chkAll.checked){
document.th_edit.chkAll.checked = document.th_edit.chkAll.checked&0;
}
}

function CheckAll(form)
{
for (var i=0;i<form.elements.length;i++)
{
var e = form.elements[i];
if (e.Name != "chkAll")
e.checked = form.chkAll.checked;
}
}
function ConfirmDel()
{
if(confirm("確定要修改嗎?"))
return true;
else
return false;
}
</script>

</head>
<body>
<%
sub_number=request("sub_number")
sub_stores=request("sub_stores")
set rs=server.CreateObject("ADODB.Recordset")
sql="select * from venshop_basket where sub_number='"+sub_number+"'"
rs.open sql,conn,1,3
%>
<table>
<tr>
<td>商品名稱</td>
<td>訂購數量</td>
<td>退貨數量</td>
<td>配送門店</td>
<td>下單時間</td>
<td>退貨原因</td>
</tr>
<form action="th_update.asp" name="th_edit" method="post" onSubmit="return ConfirmDel();"><%
do while not rs.eof
%>
<tr>
<td><input name="delid" type="checkbox" onClick="unselectall()" id="delid" value='<%=cstr(rs("basket_id"))%>'><%=rs("hw_name")%>
</td>
<td><%=rs("basket_count")%></td>
<td><input type="text" name="thcount" value='<%=rs("basket_count")%>'></td>
<td><%=sub_stores%></td>
<td><%=rs("basket_date")%></td>
<td><input type="text" name="yuanyin"></td>
</tr>
<%
rs.movenext
loop
%>
<tr>
<td><input name="chkAll" type="checkbox" id="chkAll" onclick="CheckAll(this.form)" value="checkbox" />全選</td>
<td><input type="submit" name="tuihuo" value="退貨"></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</form>
</table>
<%
rs.close
conn.close
set rs=nothing
set conn=nothing
%>
</body>
</html>

th_update.asp頁面代碼:

<!--#include file="conn.asp"-->
<!--#include file="ad_chk.asp"-->
<%
If Request("delid") & ""="" then
response.write "<script>alert('請選擇要修改的信息!');history.go(-1);</script>"
else
arrdel=Request("delid")
basket_count=Request("basket_count")
thcount=Request("thcount")
for i=1 to arrdel.count
sql="update venshop_basket set basket_count='" & thcount(i) & "' where basket_id='" & arrdel(i) & "'"
conn.Execute sql
next
set conn=nothing
response.write "<script language=JavaScript>alert('修改成功!');location.href=ad_sub.asp;<script>"
response.Redirect("ad_sub.asp")
end if
%>

3. c# winform 如何批量更新資料庫數據

在處理百萬級的數據方面,也不一定需要存儲過程,用C#一樣可以;ADO.NET提供了常用對象即可解決,就是數據適配器,在處理海量數據的時候,表現還是可圈可點的。先指定參數,接著一個循環,例: for (int i = 0; i < 100; i++)
{
dataset.Tables[0].Rows[i].BeginEdit();
dataset.Tables[0].Rows[i]["time"] = "2222-22-22 22:22:22";
dataset.Tables[0].Rows[i]["value"] = 100;
dataset.Tables[0].Rows[i]["id"] = "ID"+(i+10000);
dataset.Tables[0].Rows[i].EndEdit();
}接著一次提交更新就OK了數據適配器.Update(dataset.Tables[0]);然後釋放資源,把數據集合適配器的資源都釋放掉,連接也返回池中。 dataset.Tables[0].Clear();
適配器.Dispose
dataset.Dispose要注意的是,你在取記錄填充到數據集裡面的時候,不要一次去提取100萬條,那樣你的資料庫引擎會不堪重負的。要根據你的硬體配置,每次提取適量的數據,如果配置不是很高,一次提取個500-600就行了,這樣很快就能把數據在循環中處理完畢而不是卡到CPU暴漲直到死機。

4. mysql大量數據更新採用什麼樣的方式比較好,20w條數據一次更新

建緩沖區。比如其他類型的高速緩存(redis等)作為中間緩沖層。
數據的查詢,更改首先在這個層處理,處理完再更新到對應的資料庫。
注意額外增加鎖,或者緩存機制防止緩存擊穿,雪崩導致系統崩潰。

5. c#中怎樣批量更新資料庫的數據

如果每個用戶請求更改一行,那他就只能該一行就更新,這個邏輯沒有錯。
如果你要讓他不是及時更新,可以做成隊列。
SQL語句更新的速度可能是比存儲過程慢一些,但是一個區區30萬的小數據,對於SQL
SERVER資料庫來說根本就是小菜。
換句話說,別說SQL
SERVER了,就是MYSQL這種小型資料庫,對付百萬級的數據都是很輕松的。。。

6. 如何批量更新access資料庫

更新查詢,查詢語句:
update 表1 set 表1.a=表2.a,表1.b=表2.b,表1.d=表2.d
from 表1,表2 where 表1.c=表2.c

祝你成功!

7. SQL 數據批量替換更新

UPDATEtbSETXH=REPLACE(XH,'','M')

8. C#怎麼快速批量更新資料庫

adataadter.selectcommand = "select changefield from table"

iadataadter.update(ds)

9. C# 資料庫批量更新問題

有一個辦法,可能是你想要的。但是不保證一定能實現你的目的。
在C#中有一個SqlCommandBuilder類,該類用來批量自動更新表數據變化,
說是自動更新,其實是根據已知的select語句,來自動生成其他的update,delete語句。
我以前項目的sqlhelper中,用這個類自定義過批量更新方法,在winform中使用一切ok。方法發你,看有用沒。
有些細節一定要注意的是,表狀態決定表數據的操作,比如表某行狀態是修改,那麼SqlCommandBuilder會執行update。但是這個狀態你要控制好。另外,你傳遞的select語句,一定要和你所構造的表結構接近吻合。看方法。
/// <summary>
/// operare database by commandbuilder
/// </summary>
/// <param name="connectinString">connectinString</param>
/// <param name="commandString">commandString</param>
/// <param name="sourceDable">do update or insert database table</param>
public static int ExecuteByCommandBuilder(string connectinString, string commandString, DataTable sourceDable, SqlParameter sqlparam)
{
SqlConnection sqlcon = new SqlConnection();
sqlcon.ConnectionString = connectinString;
using (SqlCommand sqlcommand = new SqlCommand(commandString, sqlcon))
{
if (sqlparam != null)
{ sqlcommand.Parameters.Add(sqlparam); }
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = sqlcommand;
//DataSet ds = new DataSet();
//da.Fill(ds);
//ds.Tables[0].Merge(sourceDable, false);
SqlCommandBuilder sqlcommandbuilder = new SqlCommandBuilder(da);
return da.Update(sourceDable);
}
}

10. mysql 批量更新10000+的數據,有什麼效率比較高的方法

首先, 插入上萬條數據,對於資料庫來說並不是「很大」的工作量,一般配置的筆記本電腦都可以在1分鍾內完成。 所以最簡單、最靈活的辦法還是寫SQL語句。

如果不希望DB編譯器每次執行都編譯SQL的話,可以使用存儲過程,直接調用,性能上會好很多。也比較簡單。
(幾萬條數據怎麼地也得要時間去處理,所以不可能特別快的。)

如果由於各種原因,導致這個插入還是很慢, 而且你的MYSQL又是5.0以上版本的話,可以使用BulkCopy來進行批量操作。
BulkCopy的原理就是Client直接把一個數組(DataTable)傳給DB,然後傳入表名,所有的編譯、操作都由DB自己完成,效率很高。
引用MySql.Data.dll , 調用MysqlBulkCopy函數即可。

這個函數在處理海量數據插入的時候效率尤為明顯, 小量數據反而沒什麼優勢,而且由於傳入的DataTable格式必須和表的欄位一模一樣(空的列也要傳進去),導致C#要寫很多代碼來構造這個數組,所以要你自己權衡用還是不用。
我在自己的電腦上批量插入一億條數據,Insert寫法大概需要1小時,BulkCopy大概只需要5分鍾。

閱讀全文

與怎麼批量更新資料庫數據相關的資料

熱點內容
感測器視頻教程下載 瀏覽:95
flash源文件賀卡下載 瀏覽:434
如何提高網路扶貧的效果 瀏覽:654
飛車軟體文件夾叫什麼 瀏覽:242
刷ec用什麼編程器 瀏覽:765
方菱數控u盤文件格式 瀏覽:260
編程為什麼輸出兩個變數 瀏覽:490
衛星大鍋2017用升級嗎 瀏覽:113
玉米win10系統下載 瀏覽:134
fgo技能升級減cd嗎 瀏覽:129
什麼記賬app免費好用 瀏覽:441
網路檢測可以檢測到什麼 瀏覽:504
sip協議教程 瀏覽:832
編程哪裡可以接項目 瀏覽:119
孤島驚魂win10 瀏覽:246
網路HRV是什麼意思 瀏覽:918
word框中打勾 瀏覽:577
tcl筆試題java 瀏覽:467
win10怎麼登錄安全模式 瀏覽:679
除了archdaily還有什麼網站 瀏覽:567

友情鏈接