最近在使用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>

 

posted on 2016-11-30 22:02  缘子方  阅读(11244)  评论(0编辑  收藏  举报