本文介绍了如何在asp.net web 程序中使用Sqlite嵌入式数据库,sqlite数据库可以作为文件放在站点的APP_DATA目录下,适合小网站使用,使用它不需要买sql server空间,而且据说它的性能很不错。
本文介绍了如何在asp.net web 程序中使用Sqlite嵌入式数据库,sqlite数据库可以作为文件放在站点的APP_DATA目录下,适合小网站使用,使用它不需要买sql server空间,而且据说它的性能很不错。
Sqlite是嵌入数据库,类似与MS Sql Server Compact,之所以不用Sql server compact是因为它既不支持SELECT TOP也不支持ROW_NUMBER()还不支持LIMIT,也就是我没有办法用它分页了,取数据的时候必须根据条件取,不能在给定条件下取n条。
1. 安装Sqlite数据库,sqlite数据库非常方便,他的安装只有一个exe文件,可以下载。
下载可执行文件之后使用命令“sqlite3 dbname”执行就可以创建数据库。
或者为了开发方便下载Sqlite Developer软件,使用软件创建也有方便。下载链接
2. 安装dot net下的Sqlite数据库驱动,其实就是一个dll,System.Data.SQLite,他是一个开源项目,可以到SourceForge上下载
3. 在VS中建立一个Web Application,并引用2中的dll
4. 在default.aspx的cs文件中实现访问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)

{
//这个文件是预先生成的数据库文件
string sqliteFilePath = Server.MapPath("~/App_Data/firstsqlite.db");
DataSet ds = new DataSet();
//声明一个Sqlite数据库的链接
using (SQLiteConnection conn = new SQLiteConnection("Data Source=" + sqliteFilePath))

{
//创建sqlite命令
using (SQLiteCommand comm = conn.CreateCommand())

{
//打开数据库链接
conn.Open();
//插入数据
comm.CommandText = "INSERT INTO [t] VALUES(10,'Hello 9')";
comm.ExecuteNonQuery();

//更新数据
comm.CommandText = "UPDATE [t] SET name = 'Hello 10' WHERE id = 10";
comm.ExecuteNonQuery();

//使用参数插入数据
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数据分页用limit就行,很方便
comm.CommandText = "Select * From MAIN.[t]";
using (SQLiteDataAdapter adapter = new SQLiteDataAdapter(comm))

{
adapter.Fill(ds);
}
}
}

gv1.DataSource = ds;
gv1.DataBind();
}


/**//// <summary>
/// 放回一个SQLiteParameter
/// </summary>
/// <param name="name">参数名字</param>
/// <param name="type">参数类型</param>
/// <param name="size">参数大小</param>
/// <param name="value">参数值</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可以做一些改进,让我们可以舒服的使用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构