2013-05-21 99 views
0

我开始设置windows phone 8 sqlite,一切都很顺利。我安装了用于Windows电话扩展的SQL。然后我继续添加解决方案(Sqlite.vcxproj)。之后,我添加了文件Sqlite.cs和SqliteAsync.cs。然后我引用了windows手机中的sqlite添加引用,一切似乎都很好。最后,我将USE_WP8_NATIVE_SQLITE添加到构建属性中。 (I其次 - >THIS guideWindows phone 8 Sqlite设置

首先,我曾与SQLite3的缺失命名空间,但问题,那么我固定它手动之后加入Community.CsharpSqlite.SQLiteClient.WP.dll,Community.CsharpSqlite.WinPhone.dll,System.Data.Ersatz .WinPhone.dll。

问题是,当我插入此代码:

private async void CreateDatabase() 
{ 
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(Path.Combine(ApplicationData.Current.LocalFolder.Path, "people.db"), true); 
await conn.CreateTableAsync<Person>(); 
} 

我不断收到命名空间名称SQLiteAsyncConnection找不到(是否缺少指令或程序集引用?)错误。

是发生这种情况,因为我不能添加sqlite3 DLL手册?(我得到讨厌的“引用更高版本或不兼容的程序集不能添加到项目”错误)。 Windows Phone的SQLite被添加到参考文献中。

+0

你从偏离[说明sqlite的净WP8页面上(https://github.com/peterhuene/sqlite-net-wp8)?你不需要CSharpSqlite,因为sqlite-net-wp8是用来代替本地sqlite库的包装。 SQLiteAsyncConnection应该被找到,因为SqliteAsync.cs应该在你的项目中。请注意,它的命名空间是'SQLite',而不是'SQLite3'。 –

+0

我希望它能以某种方式工作,但无济于事,是的SqliteAsync.cs是在我的项目,但它仍然无法正常工作,检查我的解决方案资源管理器的图片底部的答案下的评论。一切似乎都已到位,但它不起作用。 –

+0

由于Sqlite项目已经包含对它的引用,因此您不需要将项目引用为“Windows Phone的SQLite”。您应该引用Sqlite(来自sqlite-net-wp8)作为项目的项目引用。 –

回答

0
SQLiteAsyncConnection conn = new SQLiteAsyncConnection(Path.Combine(ApplicationData.Current.LocalFolder.Path, "people.db"), true); 

下一个打开的连接

await conn.OpenAsync(); 
string empPersionallInfo = "create table if not exists EmpInfo" + "(no int," + "name varchar(20))"; 
await conn.ExecuteStatementAsync(empPersionallInfo);