Sqlite学习心得

前端之家收集整理的这篇文章主要介绍了Sqlite学习心得前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

最近我弄了一个自己的网站,一个笑话网,网站地址是http:www.365joke.net 作为一个站长最烦恼的事情就是百度收录问题,还有就是更新数据问题,为了百度很好的收录,和解决更新数据的麻烦,我自己弄了一个采集文章的工具,并可以发布,这样解决了我每天手动更新数据的问题,但是文章也没有做到原创!先来分享下我弄这个采集工具 学习sqlite微型数据库的一些心得。

我弄这个采集工具主要是想回家了没有网,不能更新网站数据的问题,我想把我这个工具放到U盘里能够去网吧采集和发布,但是为了解决安装数据库的我决定选择了微型数据库sqlite。sqlite与Access一样,都是单文件的。就是说没有数据库引擎,数据库文件在磁盘上就是一个文件。而且sqlite支持索引,视图和触发器。这些都比Access强。

说道这里我们来步入正题.

一,你要使用sqlite你得先下载sqlite的类库System.Data.sqlite.dll和sqlite3.exe ,你可以到这里下载http://www.onlinedown.net/softdown/119209_2.htm

二,现在加入你的sqlite3.exe 放在f:\download的目录下,则你运行电脑的cmd命令之后到达f:download目录下之后输入sqlite3 数据库名 例如:sqlite3 Mydata.db 按回车后如下图

@H_301_13@

出现这个图就代表你的第一个数据库Mydata.db已经创建成功了

三,接下来是创建表了接下来输入create table 表名(字段一 数据类型,字段二,数据类型..); 之后按回车,如下图所示

亲们,看到这,就代表你已经在Mydata.db数据库中创建 一张名为joke的表了

四,接下来的是插入数据了,继续在后面输入insert table表名 select 字段一,字段二

如下图所示

@H_301_13@

到了这一步就已经插入了一条记录,

五,现在来查询这条记录,如下图

亲,看到了没,现在刚插入的数据已经查询出来了

六,现在到这里已经对sqlite的操作已经有了一个初步的认识了,sqlite支持sql语句,你可以同过sql语句来实现各种操作了,不过还是有点语法的差别,有写语法是不支持的,比如创建自增列,现在就告一段落了,后面我们用.net来实现各种操作sqlite

七,在C#中链接sqlite数据库我们得先引用sqlite的类库System.Data.sqlite.dll,其他的操作数据可靠和ADO.net链接sqlServer一样,也有Connect,Command,Adapter等,接下来我们来创建一个sqliteHelper的类吧

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.sqlite;
using System.Data.Common;
using System.Data;
namespace sqliteText
{
public class sqlLiteHelper
{
public static string ConnsqlLiteDbPath = string.Empty;
public static string ConnString
{
get
{
return string.Format(@"Data Source={0}",ConnsqlLiteDbPath);
}
}

// 取datatable
public static DataTable GetDataTable(string ssql)
{
DataTable dt = null;
try
{
sqliteConnection conn = new sqliteConnection(ConnString);
conn.Open();
sqliteCommand cmd = new sqliteCommand();
cmd.CommandText = ssql;
cmd.Connection = conn;
sqliteDataAdapter dao = new sqliteDataAdapter(cmd);
dt = new DataTable();
dao.Fill(dt);
}
catch
{
throw;
}
return dt;
}

// 取某个单一的元素
public static object GetSingle( string ssql)
{
DataTable dt = GetDataTable( ssql);
if (dt != null && dt.Rows.Count > 0)
{
return dt.Rows[0][0];
}
return null;
}
// 取最大的ID
public static Int32 GetMaxID( string sKeyField,string sTableName)
{
DataTable dt = GetDataTable("select ifnull(max([" + sKeyField + "]),0) as MaxID from [" + sTableName + "]");
if (dt != null && dt.Rows.Count > 0)
{
return Convert.ToInt32(dt.Rows[0][0].ToString());
}
return 0;
}

// 执行insert,update,delete 动作,也可以使用事务
public static bool UpdateData(out string sError,string ssql,bool bUseTransaction = false)
{
int iResult = 0;
sError = string.Empty;
if (!bUseTransaction)
{
try
{
sqliteConnection conn = new sqliteConnection(ConnString);
conn.Open();
sqliteCommand comm = new sqliteCommand(conn);
comm.CommandText = ssql;
iResult = comm.ExecuteNonQuery();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
}
}
else // 使用事务
{
DbTransaction trans = null;
try
{
sqliteConnection conn = new sqliteConnection(ConnString);
conn.Open();
trans = conn.BeginTransaction();
sqliteCommand comm = new sqliteCommand(conn);
comm.CommandText = ssql;
iResult = comm.ExecuteNonQuery();
trans.Commit();
}
catch (Exception ex)
{
sError = ex.Message;
iResult = -1;
trans.Rollback();
}
}
return iResult > 0;
}
}

}

创建完sqliteHelper类后我们来创建一个窗体来测试

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace sqliteText
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender,EventArgs e)
{

//设置链接数据库路径
sqlLiteHelper.ConnsqlLiteDbPath = Application.StartupPath + \\MyData.db;
string sql = "select * from Joke";
DataTable dt= sqlLiteHelper.GetDataTable(sql);//通过sql语句来查询数据库数据

//以下是把查询出来的数据显示到ListView控件中
if(dt!=null)
{
int count = 0;
if(dt.Rows.Count>0)
{
foreach(DataRow row in dt.Rows)
{
ListViewItem lvi = new ListViewItem((++count).ToString());
lvi.SubItems.Add(row[0].ToString());
lvi.SubItems.Add(row[1].ToString());
lvi.SubItems.Add(row[2].ToString());
lvi.SubItems.Add(row[3].ToString());
lvi.SubItems.Add(row[4].ToString());
lvi.SubItems.Add(row[5].ToString());
lvi.SubItems.Add(row[6].ToString());
lvi.SubItems.Add(row[7].ToString());
this.listView1.Items.Add(lvi);
}
}
}
}
}
}

亲们,以上是我学习sqlite的学习分享,多谢大家捧场,大家都多讨论

原文链接:https://www.f2er.com/sqlite/201529.html

猜你在找的Sqlite相关文章