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文件中是这样写的
- <appSettings>
- <add key="SqlConfiguration" value="Data Source= |DataDirectory|MyFriendList.sqlite; Integrated Security='True'"/>
- </appSettings>
|DataDirectory| 的作用是定位到App_Data文件夹下面,源程序则是生成在inDebug目录下面,结果在Debug目录下面发现了Sqlite自动生成的数据库。这下明白了。不过在做WINFORM程序的时候如果还要安装,那数据库路径在Config文件中是不能写死的。放在Debug目录下面应该是一个解决办法吧。
如果是WEB应用程序这个问题就好解决了。