Dapper C# 访问SQLite

1.以操作SQLite为例.先下载Dapper,项目引用添加Dapper.dll,然后入下

 

SQLiteConnectionStringBuilder sb = new SQLiteConnectionStringBuilder();
sb.DataSource = @"D:sqlite.db";
SQLiteConnection con = new SQLiteConnection(sb.ToString());
con.Open();
string sql = "select * from user";
foreach( User u in con.Query<User>(sql))
{
     Console.WriteLine(u.Name);
}
con.Close();

 参数查询:

 SQLiteConnectionStringBuilder sb = new SQLiteConnectionStringBuilder();
            sb.DataSource = @"D:\\sqlite.s3db";

            SQLiteConnection con = new SQLiteConnection(sb.ToString());
            con.Open();

            var data = con.Query("select * from t_session where appkey=@appkey", new
             {
                 appkey = appKey
             });

            con.Close();

 添加:

  con.Execute(" insert into t_session(appkey,appsecret,updatetime)values(@appkey,@appsecret,@updatetime)"
                    , new
                    {
                        appkey = appKey,
                        appsecret = appSecret,
                        updatetime = DateTime.Now
                    });

更新:

//更新
con.Execute("update t_session set appsecret=@appsecret where appKey=@appKey ",
                    new
                    {
                        appKey = appKey,
                        appsecret = appSecret
                    });

 

今天学习用Sqlite结果总出错:no such table: MyFriendInfo

翻译一下就是:没有找到MyFriendInfo表。

怎么会这样呢?在数据库里面明明有表的。

调试和查看原文件各级目录发现:

当Sqlite找不到相关的表的时候会自动创建。这下可明白了。问题出在路径上。

我在App.Config文件中是这样写的

 

Xml代码  收藏代码
  1. <appSettings>  
  2.         <add key="SqlConfiguration" value="Data Source= |DataDirectory|\MyFriendList.sqlite; Integrated Security='True'"/>  
  3. </appSettings>  

|DataDirectory| 的作用是定位到App_Data文件夹下面,源程序则是生成在\bin\Debug\目录下面,结果在Debug目录下面发现了Sqlite自动生成的数据库。这下明白了。不过在做WINFORM程序的时候如果还要安装,那数据库路径在Config文件中是不能写死的。放在Debug目录下面应该是一个解决办法吧。

如果是WEB应用程序这个问题就好解决了。

posted @ 2015-03-12 20:02  软件技术开发  阅读(8565)  评论(0编辑  收藏  举报