C#連接SQLite數據庫方法


        最近在使用SQLite數據庫作為C#項目的數據源,填了幾天坑,終於快把坑填完了。今天簡單的記下操作步驟以便以后查找使用。

        工具:SQLite Expert Personal 3,Microsoft Visual Studio 2010,System.Data.SQLite.DLL,System.Data.SQLite.Linq.DLL。運行環境 .NET 4.0。

        System.Data.SQLite分x64(64位)和x86(32位),下載地址 http://www.xdowns.com/soft/184/dll/2014/Soft_127218.html 或者 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki 

       下面介紹一種配置方式

       首先新建一個 Windows窗體項目,引用System.Data.SQLite,添加一個APP.config或者Web.config配置文件。connectionString="Product.db",Product.db是SQLite創建的數據庫,存放在項目的 bin\Debug 目錄下。Web.config(APP.config)的配置如下圖。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/>
        <supportedRuntime version="v2.0.50727"/>
    </startup>


    <connectionStrings>
        <add name="SQLiteDB" connectionString="Product.db" />
    </connectionStrings>

    <system.data>
        <DbProviderFactories>
            <remove invariant="System.Data.SQLite"/>
            <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite"
                 type="System.Data.SQLite.SQLiteFactory,System.Data.SQLite, Version=1.0.94.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139"    />
        </DbProviderFactories>
    </system.data>
</configuration>

      新建一個文件夾Service, 新建一個類,類名 ConfigService放在,配置信息如下圖。

    public  class ConfigService
    {
        public static string ConnectionString
        {
            get
            {
                return "Data Source=" + AppDomain.CurrentDomain.BaseDirectory + ConfigurationManager.ConnectionStrings["SQLiteDB"].ConnectionString;

            }
        }

    }

     新建productService類

   public class ProductService
    {
            public static readonly ProductService Instance = new ProductService();
            private static string connstr = ConnectionString.ConnectionStrings;
      
          public bool Insert(String product)
         {
             SQLiteConnection conn = null;
             int num = 0;
             int productNum=10;
             try
             {
                 conn = new SQLiteConnection(connstr);
                 conn.Open();
                 string sql = "Insert into product values(@product,@productNum)";
                 SQLiteParameter[] parameter = { new SQLiteParameter("@product",product),new SQLiteParameter("@productNum",productNum)};
                 SQLiteCommand cmd = new SQLiteCommand(sql,conn);
                 cmd.Parameters.AddRange(parameter);
                 num=cmd.ExecuteNonQuery();    

             }
             catch(Exception ex)
             {
                 return false;
             }
             if (num > 0)
                 return true;
             else
                 return false;
  
         }
    }

       這樣一個簡單的插入語句也就寫好了。

       當然,在上述的APP.config中,我們也可以用下圖中的 connectionString配置取代上面的connectionString的配置。那么,我們就不再需要ConfigService這個類去轉化。相應的,我們在productService中的配置也要發生變化,需要將 private static string connstr = ConnectionString.ConnectionStrings; 這段代碼切換成 private static string connstr = ConfigurationManager.ConnectionStrings["SQLiteDB"].ConnectionString;

    <connectionStrings>
        <add name="SQLiteDB" connectionString="Data Source=Product.db"/>
    </connectionStrings>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM