程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> asp.net網站開發中使用Sqlite嵌入式數據庫

asp.net網站開發中使用Sqlite嵌入式數據庫

編輯:關於.NET

本文介紹了如何在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可以做一些改進,讓我們可以舒服的使用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved