1. 程式人生 > >C#實現對SQLite資料庫的資料批量提交

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

thinkphp180萬資料批量更新支援事務回滾

目前測試180萬多的資料,大概是正常的,不知道再多了會怎麼樣了我們要給表改成 innodb型別 乾貨來了:        set_time_limit(0);