Windows phone 8.1 的 SQLite 数据读取器
Sqlite data reader for Windows phone 8.1
目前 windows phone 8.1 的 SQLite 没有附带 SQLite 数据读取器,但是我需要在不知道类型的情况下从 SQLite DB 读取数据,这是因为 Table 数据和模式可以在外部更改(在我的应用程序之外)。
那么有什么方法可以读取 SQLite table 数据,如下所示
var connection = new SQLiteConnection(dbName);
connection.Query<T>("Select * from Table")
其中 T 未知?
或者,是否可以根据从 connection.GetTableInfo("Table name") 获得的列列表动态创建 T?
您可以使用 Andy Wigley 的 SQLiteWinRT 包装器,它支持普通的非类型化 SQL (https://sqlwinrt.codeplex.com/)。
您可以使用普通的旧语句:
// Get the file from the install location
var file = await Package.Current.InstalledLocation.GetFileAsync("cities.db");
// Create a new SQLite instance for the file
var db = new Database(file);
// Open the database asynchronously
await db.OpenAsync(SqliteOpenMode.OpenRead);
// Prepare a SQL statement to be executed
var statement = awaitdb.PrepareStatementAsync(
"SELECT rowid, CityName FROM Cities;");
// Loop through all the results and add to the collection
while (awaitstatement.StepAsync())
items.Add(statement.GetIntAt(0) + ": "+ statement.GetTextAt(1));
或者你可以使用准备好的语句(这当然更好,因为它提供了更多的模块化):
// Prepare a SQL statement to be executed with a parameter
var statement = await db.PrepareStatementAsync(
“SELECT rowid, CityName FROM Cities WHERE CityName LIKE ?;”);
// Bind the parameter value to the statement
statement.BindTextParameterAt(1, “c%”);
// Loop through all the results and add to the collection
// Same as above
如您所见,查询 return 可用于构造对象的简单字符串。或者您可以直接使用它们(您提到您不一定了解底层对象)。
这是另一个可以帮助您入门的教程:http://blogs.windows.com/buildingapps/2013/05/30/sqlite-winrt-wrapper-for-windows-phone/
目前 windows phone 8.1 的 SQLite 没有附带 SQLite 数据读取器,但是我需要在不知道类型的情况下从 SQLite DB 读取数据,这是因为 Table 数据和模式可以在外部更改(在我的应用程序之外)。
那么有什么方法可以读取 SQLite table 数据,如下所示
var connection = new SQLiteConnection(dbName);
connection.Query<T>("Select * from Table")
其中 T 未知?
或者,是否可以根据从 connection.GetTableInfo("Table name") 获得的列列表动态创建 T?
您可以使用 Andy Wigley 的 SQLiteWinRT 包装器,它支持普通的非类型化 SQL (https://sqlwinrt.codeplex.com/)。
您可以使用普通的旧语句:
// Get the file from the install location
var file = await Package.Current.InstalledLocation.GetFileAsync("cities.db");
// Create a new SQLite instance for the file
var db = new Database(file);
// Open the database asynchronously
await db.OpenAsync(SqliteOpenMode.OpenRead);
// Prepare a SQL statement to be executed
var statement = awaitdb.PrepareStatementAsync(
"SELECT rowid, CityName FROM Cities;");
// Loop through all the results and add to the collection
while (awaitstatement.StepAsync())
items.Add(statement.GetIntAt(0) + ": "+ statement.GetTextAt(1));
或者你可以使用准备好的语句(这当然更好,因为它提供了更多的模块化):
// Prepare a SQL statement to be executed with a parameter
var statement = await db.PrepareStatementAsync(
“SELECT rowid, CityName FROM Cities WHERE CityName LIKE ?;”);
// Bind the parameter value to the statement
statement.BindTextParameterAt(1, “c%”);
// Loop through all the results and add to the collection
// Same as above
如您所见,查询 return 可用于构造对象的简单字符串。或者您可以直接使用它们(您提到您不一定了解底层对象)。
这是另一个可以帮助您入门的教程:http://blogs.windows.com/buildingapps/2013/05/30/sqlite-winrt-wrapper-for-windows-phone/