近日有需要写点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.SQLiteConnectionStringBuilder 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数据库的更多相关文章

  1. ASP.net与SQLite数据库通过js和ashx交互(连接和操作)

    ASP.net与SQLite数据库通过js和ashx交互(连接和操作): 废话(也是思路):用的是VS2010,打算做网站前后台.由于不喜欢前台语言里加些与html和css和js的其他内容,想实现前后 ...

  2. [python]用Python进行SQLite数据库操作

    用Python进行SQLite数据库操作 1.导入Python SQLITE数据库模块 Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~  ]: u ...

  3. 使用iOS原生sqlite3框架对sqlite数据库进行操作

    摘要: iOS中sqlite3框架可以很好的对sqlite数据库进行支持,通过面向对象的封装,可以更易于开发者使用. 使用iOS原生sqlite3框架对sqlite数据库进行操作 一.引言 sqlit ...

  4. C#操作SQLite数据库

    SQLite介绍 SQLite is a software library that implements a self-contained, serverless, zero-configurati ...

  5. 如何C#操作SQLite数据库

    或许有人之前在java开发中使用过SQLite,对它有些印象.在用Winform或Wpf开发小应用程序时,发现用SQLite数据库也是不错的.就像一个会员管理软件,开发完毕后,可以省去想sqlserv ...

  6. C#操作SQLite数据库增、删、改、查 欢迎转载

    C#操作SQLite数据库增.删.改.查 欢迎转载 转载记得留下链接地址哦!!! 最近项目上要使用SQLite数据库,不怕大伙笑话毕业四年多了,一直使用Oracle或者MySQL或者SQLServer ...

  7. Java操作Sqlite数据库-jdbc连接

    Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...

  8. 实验8 SQLite数据库操作

    实验报告 课程名称 实验8  SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型    √设计型    □综合型 学  时 一 ...

  9. android 对sqlite数据库的增删改查等各种操作

    转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...

随机推荐

  1. HTML5标签简化写法

    基本页面格式 <!DOCTYPE> <html> <head> <meta charset="utf-8" /> <title ...

  2. HDU2045/*HDU2604/*HDU2501/HDU2190 递推

    不容易系列之(3)-- LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O ...

  3. JS移动客户端--触屏滑动事件 banner图效果

    JS移动客户端--触屏滑动事件 移动端触屏滑动的效果其实就是图片轮播,在PC的页面上很好实现,绑定click和mouseover等事件来完成.但是在移动设备上,要实现这种轮播的效果,就需要用到核心的t ...

  4. uilmit 优化

    #!/bin/bash sed -i "/^ulimit -SHn.*/d" /etc/rc.local echo "ulimit -SHn 102400" & ...

  5. MVC概念性的内容

    MVC:    是一个缩写(model + view + control),      Model:是一些类文件,  功能:负责增删改查, 负责跟数据库打交道 (把数据存入到数据库: 从数据库把数据读 ...

  6. 蓝牙物理链路类型:SCO和ACL链路

    蓝牙物理链路ACL(Asynchronous Connectionless), 另外的一种链路是SCO(Synchronous Connection Oriented)主要用来传输对时间要求很高的数据 ...

  7. markdown语法测试

    斜体 粗体 百度 标题一 -------- 标题二 ======== 标题三 标题四 有序列表一 有序列表二 无序列表一 无序列表二 这是引用的文字 这是一句行内代码var=1 public clas ...

  8. 基于netty的心跳机制实现

    前言:在实现过程查找过许多资料,各种波折,最后综合多篇文章最终实现并上线使用.为了减少大家踩坑的时间,所以写了本文,希望有用.对于实现过程中有用的参考资料直接放上链接,可能有些内容相对冗余,不过时间允 ...

  9. js 十分精确身份证验证

    checkIdcard:function (idcard) { // 1 "验证通过!", 0 //身份证号码校验错误 var Errors = new Array( " ...

  10. db2常用命令大全

    #显示这个DB2错误的解释信息(SQLSTATE 5位数字)db2 ? 42704 #显示这个SQLCODE的解释信息(SQLCODE 四位数字) db2 ? SQL0204N ##查看数据库指定配置 ...