1. 程式人生 > >近日有需要寫點C#程式,有用到Dataset資料集和SQLite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘: 一、SQLite操作,直接貼程式碼,很簡單

近日有需要寫點C#程式,有用到Dataset資料集和SQLite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘: 一、SQLite操作,直接貼程式碼,很簡單

近日有需要寫點C#程式,有用到Dataset資料集和SQLite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘:

  一、SQLite操作,直接貼程式碼,很簡單:

      //建立一個數據庫檔案

    string  datasource=Application.StartupPath   "\\test.db" ;
    System.Data.SQLite.SQLiteConnection. CreateFile (datasource);
    //連線資料庫
    System.Data.SQLite.SQLiteConnection conn =


        new  System.Data.SQLite. SQLiteConnection ();
    System.Data.SQLite.SQLiteConnectionStringBu ilder connstr =
        new  System.Data.SQLite. SQLiteConnectionStringBuilder ();
    connstr.DataSource = datasource;
    connstr.Password =  "admin" ; //設定密碼,SQLite ADO.NET實現了資料庫密碼保護
    conn.ConnectionString = connstr.
 ToString ();
    conn. Open ();
    //建立表
    System.Data.SQLite.SQLiteCommand cmd =  new  System.Data.SQLite. SQLiteCommand ();
    string  sql =  "CREATE TABLE test(username varchar(20),password varchar(20))" ;
    cmd.CommandText=sql;
    cmd.Connection=conn;
    cmd. ExecuteNonQuery ();
    //插入資料
    sql = 
 "INSERT INTO test VALUES('dotnetthink','mypassword')" ;
    cmd.CommandText = sql;
    cmd. ExecuteNonQuery ();
    //取出資料
    sql =  "SELECT * FROM test" ;
    cmd.CommandText = sql;
    System.Data.SQLite.SQLiteDataReader reader = cmd. ExecuteReader ();
    StringBuilder sb =  new  StringBuilder ();
    while  (reader. Read ())
    {
        sb. Append ( "username:" ). Append (reader. GetString ( 0 )). Append ( "\n" )
            . Append ( "password:" ). Append (reader. GetString ( 1 ));
    }
    MessageBox. Show (sb. ToString ());

  二、利用Dataset資料集向SQLite資料庫插入資料,也直接貼程式碼:

     DialogResult dlgResult= openFileDialog1. ShowDialog ();   // 開啟要匯入的檔案
     if  (openFileDialog1.FileName ==  ""  || dlgResult != DialogResult.OK)
         return ;
     // 利用StreamReader類讀取文字內容
    StreamReader sr= new  StreamReader
        (File. OpenRead (openFileDialog1.FileName),System.Text.Encoding.Default);
     //連線資料庫
    System.Data.SQLite.SQLiteConnection conn =  new  System.Data.SQLite. SQLiteConnection ();
    System.Data.SQLite.SQLiteConnectionStringBuilder connstr
        =  new  System.Data.SQLite. SQLiteConnectionStringBuilder ();
    connstr.DataSource = datasource;
    connstr.Password =  "admin" ; //設定密碼,SQLite ADO.NET實現了資料庫密碼保護
    conn.ConnectionString = connstr. ToString ();
    conn. Open ();
     //大量更新時採用事務的方式,先快取事務,然後SQLiteDataAdapter.update後批量commit
    SQLiteTransaction ts = conn. BeginTransaction ();
     string  sql= " select name,number from test limit 1" ;
    SQLiteDataAdapter dta =  new   SQLiteDataAdapter (sql,conn);
    SQLiteCommandBuilder scb =  new   SQLiteCommandBuilder (dta);
    dta.InsertCommand=scb. GetInsertCommand ();
    DataSet DS =  new   DataSet ();
    dta. FillSchema (DS,SchemaType.Source,  "Temp" );     //載入表架構 注意
    dta. Fill (DS, "Temp" );     //載入表資料
    DataTable DT = DS.Tables[ "Temp" ];
     //插入資料
     while  (!sr.EndOfStream)
    {
         string [] strArr = sr. ReadLine (). Split ( new  Char[] {  '\t'  });
         if  (strArr[ 0 ] != ""  && strArr[ 1 ] != "" )
        {
            DataRow DR = DT. NewRow ();
            DR[ 0 ]=strArr[ 0 ];
            DR[ 1 ]=strArr[ 1 ];
            DT.Rows. Add (DR);
        }
    }
     int  result=dta. Update (DT);     // 如不用BeginTransaction和Commit批量提交事務,效能會很低,350條資料20多秒
    ts. Commit ();     // 提交事務
    DS. AcceptChanges ();
     // 釋放資源
    dta. Dispose ();
    DS. Clear ();
    conn. Close ();
    conn. Dispose ();
    sr. Close ();
    sr. Dispose ();
    MessageBox. Show ( "成功匯入了: "  + result. ToString () +  " 行資料。" ,  "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

相關推薦

近日需要C#程式有用Dataset資料SQLite資料庫由於從來擅長各種程式語言語法所以查閱資料留下以下內容 SQLite操作直接程式碼簡單

近日有需要寫點C#程式,有用到Dataset資料集和SQLite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘:   一、SQLite操作,直接貼程式碼,很簡單:       //建立一個數據庫檔案     string  d

spring常用註解 @Configuration@ConfigurationProperties@Bean@Qualifier

1,下面先給出這四個註解的使用場景程式碼: A,這四個註解的使用如下: /** * 卡牛徵信 */ @Configuration @ConfigurationProperties(prefix="cube.partner.conifg.kn") public clas

c# 採用BIT-map 方式資料找出重複的

採用的是bit-map演算法,關於什麼是bit-map,百度一下; 直接上一段程式碼,用C#改寫的! 如下:  class Program     {         private static int[] flags = new int[1000000];    

實驗目的: 1、理解使用者與模式的概念掌握oracle中使用者管理的基本方法 2、理解系統許可權、物件許可權的概念掌握分配許可權的方法 3、理解角色的概念掌握角色的應用方法 實驗內容: 、使用者

撰寫人——軟體二班——陳喜平 一、使用者管理與應用 1、檢視使用者與模式 show USER; 2、建立使用者 sqlplus sys/[email protected] as sysdba CREATE USER t16436220 IDENTIFIED B

新入職程式設計師看了別人一個方法7000行程式碼看得頭都大了!

在寫程式碼,文件方面,程式設計師最喜歡且最常做的是不寫文件,不寫程式碼註釋,最不願意看到就是:別人不寫文件,別人不寫程式碼註釋,這幾乎是所有程式設計師的一個狀態吧。遇到無文件,無註釋,無人可問的程式碼,對於一個程式設計師來說是比較崩潰的,對麼?想必有部分程式設計師朋友可能會遇到這樣尷尬的場景,不過比

面對資料沒有分析思路怎麼辦?

本文轉自知乎 作者:空白白白白 ————————————————————————————————————————————————————— 資料分析師一開始當然能做幾個有趣的分析,但是長期做資料分析工作,想法總會枯竭,尋找分析思路就變得異常痛苦。可以這麼說,分析思路直接奠定了資料分析結論

nodejs總結() -- nodeexpress安裝與配置新建簡單專案(附安裝配置過程中遇到問題的解決方法)

安裝node 本文以安裝node_v8.9.0為例(win10環境),下載node-v8.9.0-x64.msi外掛 下載後,安裝,安裝目錄預設為C:\Program Files\nodejs 配置環境變數,系統變數->path,新增“C:\Program Files\nodejs\”

程式設計師幽默】媽媽說你什麼都好該是個程式設計師

                                                                              媽媽說你什麼都好,就不該是個程式猿                                                          

基礎細說new與malloc的10區別

正文 回到頂部 前言 幾個星期前去面試C++研發的實習崗位,面試官問了個問題: new與malloc有什麼區別? 這是個老生常談的問題。當時我回答new從自由儲存區上分配記憶體,malloc從堆上分配記憶體;new/delete會呼叫建構函式/解構函式對

CentOS-7 使用systemctrl 管理的服務檔案開啟數上限1024要改

改要 檔案 中 /etc/systemd/system.conf  以下兩個值 DefaultLimitNOFILE=1024000 DefaultLimitNPROC=1024000 並且要重啟機器 --- 反正 我是直接重啟機器 如不改,systemctrl sta

可以將 UI 設計圖直接生成程式碼簡直太神奇了這真的是解放了程式設計師生產力嗎?...

【回覆“1024”,送你一個特別推送】作為程式設計師,尤其是前端和移動端的程式設計師,最煩氣和最

Hadoop HDFS bugDN的刪除佇列與block report的協調引起的資料丟失

現象描述:線上任務出現失敗,日誌中顯示查詢計算用的block失敗。 現象分析:NN記錄了block的所在的DN,但是DN上卻沒有了這個block;通常,刪除過程是先刪除NN\DN上的資料,然後再刪除磁碟上的資料。 肯定是某種條件,使得NN恢復了block資訊,而DN上的確刪

Junit單元測試

環境 包名 args 方法 成功 junit單元測試 備忘 [] 命名 junit 目前測試都是在main方法中調用目前的結果都需要人工對比是否是想要的 1.使用Junit測試方法,綠色條條代表方法測試成功,沒有bug,如果是紅色條條代表有異常,測試不通過2.點擊方法名、類

cssid選擇器的權重>class選擇器的權重=屬性選擇器的權重>元素選擇器

基本 分享 bubuko col clas AS -c 測試 com 最近的項目要自己寫前端了,重新學習下前端的一下基本知識。 一般在css樣式表中,上面的會被下面的覆蓋,如下圖,文字會顯示藍色: 所以按照正常的來說,下面的css樣式,測試的文字應該還是藍色 但結果,測

填坑Windows下使用OpenSSL生成自簽證書(簡單一個晚上搞明白的讓後來者少走彎路)

vat 都是 環境 csr 過程 環境變量 crypt 報錯 out 最近在學習中發現openssl 中有個坑,所有的教程都是openssl genrsa -des3 -out private.key 1024,但是產生的證書,npm start 之後就報錯如下: erro

APP快速開發PC移動端多項目整合learun讓開發更暢快

進行 mysql 標準 mvc 解決 說了 配置 功能 整合 以前我們針對快速開發框架的PC模式進行過詳細的探討,了解到一套合適的快速開發框架對一個企業的重要性,今天我們繼續以learun框架為基礎藍本,探討一下其在APP快速開發中的作用。 learun技術支撐 (1)前臺

2018年終鉅獻阿里騰訊最新Java面試題你準備好進BAT了嗎

Java基礎 1.程序和執行緒的區別; 2.Java的併發、多執行緒、執行緒模型; 3.什麼是執行緒池,如何使用? 4.資料一致性如何保證;Synchronized關鍵字,類鎖,方法鎖,重入鎖; 5.Java中實現多型的機制是什麼; 6.如何將一個Java物件序列化到檔案裡;

numpy中的matrix與array的區別

  參考:https://www.cnblogs.com/cymwill/p/7823148.html Numpy matrices必須是2維的,但是 numpy arrays (ndarrays) 可以是多維的(1D,2D,3D····ND). Matrix是Arr

MyBatis查詢資料庫實現登入功能的一個演示

複習:entity  DAO/DBHelper  service  action  jsp 總結:使用mybatis後的區別:DBHelper裡書寫的是SqlSession,而不是自己來拿資料庫連線了,當然這得寫配置檔案SqlMapConfig;serv

貓狗大戰融合了三種模型的Keras程式碼準確率直升到99%

使用keras的resnet,inceptionV3,xception模型,首先載入預訓練模型的權重,通過預訓練權重生成對貓狗的訓練值和測試值的特徵向量 預訓練模型下載地址:http://pan.baidu.com/s/1geHmOpH from ker