原創(chuàng)|其它|編輯:郝浩|2009-04-24 13:47:26.000|閱讀 771 次
概述:本文介紹了如何在asp.net web 程序中使用Sqlite嵌入式數(shù)據(jù)庫(kù),sqlite數(shù)據(jù)庫(kù)可以作為文件放在站點(diǎn)的APP_DATA目錄下,適合小網(wǎng)站使用,使用它不需要買sql server空間,而且據(jù)說它的性能很不錯(cuò)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
本文介紹了如何在asp.net web 程序中使用Sqlite嵌入式數(shù)據(jù)庫(kù),sqlite數(shù)據(jù)庫(kù)可以作為文件放在站點(diǎn)的APP_DATA目錄下,適合小網(wǎng)站使用,使用它不需要買sql server空間,而且據(jù)說它的性能很不錯(cuò)。
Sqlite是嵌入數(shù)據(jù)庫(kù),類似與MS Sql Server Compact,之所以不用Sql server compact是因?yàn)樗炔恢С諷ELECT TOP也不支持ROW_NUMBER()還不支持LIMIT,也就是我沒有辦法用它分頁(yè)了,取數(shù)據(jù)的時(shí)候必須根據(jù)條件取,不能在給定條件下取n條。
1. 安裝Sqlite數(shù)據(jù)庫(kù),sqlite數(shù)據(jù)庫(kù)非常方便,他的安裝只有一個(gè)exe文件,可以下載。
下載可執(zhí)行文件之后使用命令“sqlite3 dbname”執(zhí)行就可以創(chuàng)建數(shù)據(jù)庫(kù)。
或者為了開發(fā)方便下載Sqlite Developer軟件,使用軟件創(chuàng)建也有方便。下載鏈接
2. 安裝dot net下的Sqlite數(shù)據(jù)庫(kù)驅(qū)動(dòng),其實(shí)就是一個(gè)dll,System.Data.SQLite,他是一個(gè)開源項(xiàng)目,可以到SourceForge上下載
3. 在VS中建立一個(gè)Web Application,并引用2中的dll
4. 在default.aspx的cs文件中實(shí)現(xiàn)訪問Sqlite的代碼,代碼和注釋如下:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SQLite;
namespace SqliteWebApp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//這個(gè)文件是預(yù)先生成的數(shù)據(jù)庫(kù)文件
string sqliteFilePath = Server.MapPath("~/App_Data/firstsqlite.db");
DataSet ds = new DataSet();
//聲明一個(gè)Sqlite數(shù)據(jù)庫(kù)的鏈接
using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + sqliteFilePath))
{
//創(chuàng)建sqlite命令
using (SQLiteCommand comm = conn.CreateCommand())
{
//打開數(shù)據(jù)庫(kù)鏈接
conn.Open();
//插入數(shù)據(jù)
comm.CommandText = "INSERT INTO [t] VALUES(10,'Hello 9')";
comm.ExecuteNonQuery();
//更新數(shù)據(jù)
comm.CommandText = "UPDATE [t] SET name = 'Hello 10' WHERE id = 10";
comm.ExecuteNonQuery();
//使用參數(shù)插入數(shù)據(jù)
comm.CommandText = "INSERT INTO [t] VALUES(@id,@name)";
comm.Parameters.AddRange(
new SQLiteParameter[]{
CreateSqliteParameter("@id",DbType.Int32,4,11),
CreateSqliteParameter("@name",DbType.String,10,"Hello 11")
});
comm.ExecuteNonQuery();
comm.Parameters.Clear();
//select數(shù)據(jù)分頁(yè)用limit就行,很方便
comm.CommandText = "Select * From MAIN.[t]";
using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(comm))
{
adapter.Fill(ds);
}
}
}
gv1.DataSource = ds;
gv1.DataBind();
}
/**//// <summary>
/// 放回一個(gè)SQLiteParameter
/// </summary>
/// <param name="name">參數(shù)名字</param>
/// <param name="type">參數(shù)類型</param>
/// <param name="size">參數(shù)大小</param>
/// <param name="value">參數(shù)值</param>
/// <returns>SQLiteParameter的值</returns>
static private SQLiteParameter CreateSqliteParameter(string name,DbType type,int size,object value)
{
SQLiteParameter parm = new SQLiteParameter(name,type, size);
parm.Value = value;
return parm;
}
}
}
最后希望的MS Sql Server Compact可以做一些改進(jìn),讓我們可以舒服的使用。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:cnblog