C#實現對SQLite資料庫的資料批量提交
遇到一個業務需求,需要定期對SQLite資料庫進行資料的批量更新,實現的是將Dictionary中的資料批量新增到資料庫,現將程式碼展示如下。
public void updateDataToDB(Dictionary<string, int> dictionary)
{
using (SQLiteConnection con = new SQLiteConnection(@"data source=bicycle.db"))
{
con.Open();
DbTransaction trans = con.BeginTransaction();//開始事務
SQLiteCommand cmd = new SQLiteCommand(con);
cmd.CommandText = "update table set coun = @a where bikeId = @b";
foreach (KeyValuePair<string, int> kv in dictionary)
{
cmd.Parameters.Add(new SQLiteParameter("@a", DbType.String));//MySql則使用MySqlDbType
cmd.Parameters.Add(new SQLiteParameter("@b", DbType.Int32));
cmd.Parameters["@a"].Value = kv.Key;
cmd.Parameters["@b"].Value = kv.Value;
cmd.ExecuteNonQuery();
}
trans.Commit();//事務提交
}
}
這樣就OK了!
之前沒有使用批量提交,一次提交的資料會有5分鐘的等待時間,使用者體驗太差;使用批量提交之後每次提交時間為1秒,提高了工作效率,使用者體驗也得到明顯明顯改善。
相關推薦
C#實現對SQLite資料庫的資料批量提交
遇到一個業務需求,需要定期對SQLite資料庫進行資料的批量更新,實現的是將Dictionary中的資料批量新增到資料庫,現將程式碼展示如下。 public void updateDataToDB(Dictionary<string, int> diction
C#實現對SQL資料庫中的表的查詢、新增、修改、刪除資料
經常用到的物件有:SqlConnection,SqlAdapter,SqlCommand、Dataset、DataGrid和DataReader等,以SqlConnection,SqlAdapter,SqlCommand、Dataset、DataGrid物件,操作SQL的例
jfinal+hbase+eclipse開發web專案詳細步驟04---在web頁面實現對hbase資料庫資料的增刪查改功能
首先提醒大家,本節是在步驟01、步驟02、步驟03都成功的基礎上做進一步開發。如果在之前的任何一個步驟出現問題,那麼希望你先解決好問題之後,再做本次的開發。 步驟1:建表。 1、開啟我們虛擬機器,並且啟動hadoop、hbase start-all.sh start
C#利用Dapper實現對SQLite的操作
前言 近幾天藉助C#對SQLite的學習,算是對資料庫剛入門吧,三天前寫了一篇C#利用System.Data.SQLite實現對SQLite的操作,其中方法是基於System.Data.SQLite.dll的程式包,後來在youtube和infoworld上看到利用Dapper程式包對資
C#利用System.Data.SQLite實現對SQLite的操作
SQLite介紹 SQLite是一個類似於Access的單機版資料庫管理系統,它將所有資料庫的定義(包括定義、表、索引和資料本身)都儲存在一個單一的檔案中。並且,SQLite是一個用C實現的類庫,它在記憶體消耗、檔案體積、簡單性方面都有不錯的表現,如果資料在10W條以下,查詢速度也是相當
C# 三層實現對多表資料查詢
首先:資料庫設計--使用mysql資料庫。資料庫名稱:DBTest 資料表有4個: //年級表(Grade):gradeid,gradename //學生表(Student):studentno,gradeid,studentname
【C語言】實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)的置0或者置1操作,並保持其他位不變
請編碼實現以下功能的函式 功能:實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)的置0或者置1操作,並保持其他位不變。 函式原型:void bit_set(unsigned char *p_data,unsigned char position,int flag)
通過Ocilib實現對Oracle資料庫訪問示例[Unix][Win][C/C++]
目錄 說明 示例 建表 說明 本部落格每天都有乾貨更新,歡迎關注收藏,轉載請註明出名。更多關於Linux的技術學習與交流可加QQ群:927421758。 示例 以下展示各種使用示例。 基本使用方法示例 編碼 //1.c #i
C#基於SQLiteHelper類似SqlHelper類實現存取Sqlite資料庫的方法
本文例項講述了C#基於SQLiteHelper類似SqlHelper類實現存取Sqlite資料庫的方法。分享給大家供大家參考。具體如下: 這個類不是我實現的,英文原文地址為http://www.eggheadcafe.com/articles/20050315.asp,這裡修改了原文中分析sql語句
【C語言】實現對一個8bit資料的指定位的置0或者置1操作,並保持其他位不變。
給定函式原型:void bit_set(unsigned char *p_data,unsigned char positin,int flag) 引數說明:p_data是指定的源資料;position是指定位(取值範圍為1~8);flag表示置0還是
【C語言】實現對一個8bit資料(unsigned char)型別的指定位的置0或置1操作,並保持其他位不變
功能:實現對一個8bit資料(unsigned char)型別的指定位(例如第n位)的置0或置1操作,並保持其他位不變。 函式原型:void bit_set(unsigned char *p_data
【c語言】實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)置0或者置1操作,並保持其他位不變
// 實現對一個8bit資料(unsigned char 型別)的指定位(例如第n位)置0或者置1操作,並保持其他位不變 #include <stdio.h> void bit_set(unsigned char *p_data, unsigned char
C#程式設計向SQLite資料庫中正確寫入DateTime型別資料
最近用C#編寫了一個程式,裡面涉及向SQLite資料庫寫入DateTime型別資料,實際時間為2012/11/30 0:20:00,但寫入資料庫後變成1899/12/30 00:00:00。 實際情況是時間寫入資料庫失敗,1899/12/30 00:00:00是資料
用java實現對MySql資料庫中資料的讀取、插入、修改和刪除
目標: 1、實現eclipse同資料庫的連線 2、在eclipse中用java實現對資料庫的控制 初學java和資料庫,本文是參考這篇文章的思路的學習筆記,程式碼實現了將4個控制函式(讀取、插入、修改和刪除)分別寫成4個靜態方法呼叫。 1. 關於java和MySQL的連
C#把DataTable裡的資料批量匯入SQLite
原目的:從一個老的SQLite裡讀出資料,存到DataTable裡,然後儲存到一個新的SQLite資料庫中。 需要引用System.Data.SQLite.dll try { SQLiteConnection Conn
c++實現對windwos 下socket 的封裝(實現封包及拆包處理)
nth word temp add ips object invalid protected 數據 SuperSocket.h #pragma once #include<string> #include<iostream> #include &
C#實現對字符串進行大小寫切換的方法
lec 原創 nbsp bsp bds 通訊 解密 根據 小寫 本文實例講述了C#實現對字符串進行大小寫切換的方法。分享給大家供大家參考。具體實現方法如下: C#代碼如下: 代碼如下: public class Program { public static vo
C++實現對數學基本運算表達式的解析
其中 計算過程 amp 結果 ket leetcode 基本 數學 們的 代碼地址如下:<br>http://www.demodashi.com/demo/11078.html 前段時間在LeetCode上刷題,遇到了很多涉及對字符串進行解析的題目。可能是出於這
ajax.setup函式實現對ajax請求資料的修改
前言: 有一個需求是把頁面中的ajax請求的資料進行修改,將傳送給後臺的字串每個字元中間加一個“%”實現模糊查詢,但是ajax函式是別人封裝好的,所以我不便於改動,於是經過萬能的百度和谷歌搜尋,找到了一個解決辦法。就是下面一段程式碼解決了我的問題,可能寫的不好但是還是有參考價值的。 $.aj
thinkphp對180萬資料批量更新支援事務回滾
目前測試180萬多的資料,大概是正常的,不知道再多了會怎麼樣了我們要給表改成 innodb型別 乾貨來了: set_time_limit(0);