我使用monodroid并通过sqlite-net库使用数据库.在一个应用程序事务中所有数据正确地从数据库放入和获取,但是当我下次部署应用程序时,我的数据库文件不存在.
我正在使用类似这些的方法
但我m testing same code in MonoTouch and WP7 application and it没事.
所以问题是:为什么数据库总是丢失?
我正在使用sql-net和mvvmcross构建一个Windows 8应用程序,以便对sqlite数据库进行数据访问.这适用于任何Win-8或Win-Phone应用程序.
我需要在app start上安装一个现有的sqlite文件.
使用连接时,您可以使用此语法
public FlashCardManager(ISQLiteConnectionFactory factory, IMvxMessenger messenger)
{
_messenger = messenger;
_connection = factory.Create("Dictionary.sqlite");
_connection.CreateTable<FlashCardSet>();
_connection.CreateTable<FlashCard>();
}
public void CreateCard(FlashCard flashCard)
{
_connection.Insert(flashCard);
}
Run Code Online (Sandbox Code Playgroud)
该连接在以下位置创建文件:C:\ Users\USER\AppData\Local\Packages\793fd702-171e-474f-ab3b-d9067c58709b_ka9b83fa3fse2\LocalState
我的应用程序使用我创建的现有sqlite数据库文件.安装应用程序时,我需要将它放在此文件夹中.我该怎么做呢?
谢谢,JH
sqlite windows-phone mvvmcross windows-store-apps sqlite-net
我想在我的Windows应用商店应用程序中读取一个sqlite数据库,如果它存在...
通常从数据库中读取表,我设置它所在的路径,然后我调用SQLiteConnection函数...
问题是,当我调用这样一个简单的函数时,为什么数据库不存在
public static async Task<ObservableCollection<Objects>> GetAll()
{
List<Objects> list;
using (var db = new SQLiteConnection(dbPath))
{
// Activate Tracing
db.Trace = true;
list = (from p in db.Table<Objects>()
select p).ToList();
}
Run Code Online (Sandbox Code Playgroud)
是否创建了数据库?
new SQLiteConnection(dbPath)调用时会创建空数据库.是否可以在不创建连接的情况下打开连接?
我在以下代码中使用SQLite-Net Extensions 从Sqlite数据库中检索1000行及其子关系:
var list =
SQLiteNetExtensions.Extensions.ReadOperations.GetAllWithChildren<DataModel>(connection);
Run Code Online (Sandbox Code Playgroud)
问题是表现很尴尬.因为GetAllWithChildren()返回List而不是Enumerable.是否存在使用Sqlite.net扩展将记录加载到Enumerable的任何方法?
我现在使用Sqlite.net中的Table()方法,将获取的行加载到Enumerable中但我不想使用它,因为它不理解关系并且根本不加载子实体.
我有包含Name(string) 和Number(int) 列的员工表。
我可以搜索任何员工。所以,
var query = cnn.Table<Employees>()
.Where(x => x.Name.Contains(search) ||
x.Number.ToString().Contains(search));
Run Code Online (Sandbox Code Playgroud)
SQLite.Net.Platform.WinRT.dll 中发生了“SQLite.Net.SQLiteException”类型的异常,但未在用户代码中处理
附加信息:没有这样的功能:tostring
如何将 Number 列转换为字符串?
谢谢你。
我们在 Xamarin.Forms 应用程序中使用 SQLite 数据库来将业务对象保留在模型层中。
业务对象看起来像
[SQLite.Table(nameof(MyBo))]
class MyBo
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
public string Name { get; set; }
... etc
}
Run Code Online (Sandbox Code Playgroud)
呼唤
int id1 = conn.InsertAsync(new MyBo(){ ID = 0, Name ="Foo" });
int id2 = conn.InsertAsync(new MyBo(){ ID = 0, Name ="Bar" });
Run Code Online (Sandbox Code Playgroud)
将导致id1 = 1和id2 = 1
conn.Table<T>().ToListAsync()返回具有正确 ID(1 和 2)的对象。
我错过了什么,我期望 InsertAsync 调用返回正确的值,但它总是返回 1!?
sqlite-net ×6
c# ×3
sqlite ×2
android ×1
database ×1
mvvmcross ×1
sqlite.net ×1
uwp ×1
winrt-xaml ×1
xamarin ×1