我试图在我的UWP应用程序中使用SQLite创建数据库及其表。我的代码没有给我任何错误,但我无法找到我的数据库文件。
SqliteEngine.UseWinSqlite3(); //Configuring library to use SDK version of SQLite
using (SqliteConnection db = new SqliteConnection("Filename=sqliteSample.db"))
{
db.Open();
// Resume Table
String resumeTable = "CREATE TABLE IF NOT EXISTS Resume (resumeId INTEGER PRIMARY KEY AUTOINCREMENT, educationInfoId INTEGER NULL, personalInfoId INTEGER NULL, userId INTEGER, certInfoId INTEGER NULL, workInfoId INTEGER NULL)";
SqliteCommand createResumeTable = new SqliteCommand(resumeTable, db);
// PersonalInfo Table
String personalInfoTable = "CREATE TABLE IF NOT EXISTS PersonalInfo (personalInfoId INTEGER PRIMARY KEY AUTOINCREMENT, userId INTEGER, city VARCHAR(100) NULL, email VARCHAR(50) NULL, name VARCHAR(100) NULL, state VARCHAR(10) NULL)";
SqliteCommand createPersonalInfoTable = new SqliteCommand(personalInfoTable, db);
try
{
createResumeTable.ExecuteReader();
createPersonalInfoTable.ExecuteReader();
}
catch (SqliteException e)
{
Console.WriteLine(e.ToString());
}
}
代码中有问题吗?数据库文件应该在哪里?
由于
答案 0 :(得分:1)
您可以在nuget中使用SqlitePCL。 http://sqlite.org/download.html
下载页面具有UAP软件,您应该下载它。
下载文件是VSIX,你应该安装它。
打开工具 - >扩展程序和更新... - >已安装 - > SDK可以看到
重新启动visual studio并右键单击您的项目References –> Add Reference
并添加sqlite
打开nuget搜索SQLitePCL。
有一些sql字符串
private static String DB_NAME = "SQLiteSample.db";
private static String TABLE_NAME = "SampleTable";
private static String SQL_CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (Key TEXT,Value TEXT);";
private static String SQL_QUERY_VALUE = "SELECT Value FROM " + TABLE_NAME + " WHERE Key = (?);";
private static String SQL_INSERT = "INSERT INTO " + TABLE_NAME + " VALUES(?,?);";
private static String SQL_UPDATE = "UPDATE " + TABLE_NAME + " SET Value = ? WHERE Key = ?";
private static String SQL_DELETE = "DELETE FROM " + TABLE_NAME + " WHERE Key = ?"
创建表
_connection = new SQLiteConnection(DB_NAME);
using (var statement = _connection.Prepare(SQL_CREATE_TABLE))
{
statement.Step();
}
INSERT
using (var statement = _connection.Prepare(SQL_INSERT))
{
statement.Bind(1, key);
statement.Bind(2, value);
statement.Step();
}
DELETE
using (var statement = _connection.Prepare(SQL_DELETE))
{
statement.Bind(1, key);
statement.Step();
}
更新
using(var statement = _connection.Prepare(SQL_UPDATE))
{
statement.Bind(1, value);
statement.Bind(2, key);
statement.Step();
}
答案 1 :(得分:0)
看起来代码是正确的。我刚刚验证过。
除非你做了一些自定义的事情,否则默认位置应为:
C:\ Users \“您的用户名”\ AppData \ Local \ Packages \“您的应用包”\ LocalState \ sqliteSample.db
答案 2 :(得分:0)
>
private static string dbPath = string.Empty;
private static string DBPath(string fileName)
{
if (string.IsNullOrEmpty(dbPath))
{
dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, fileName);
}
return dbPath;
}
/// <summary>
/// Get fileName From LocalFolder. Please Create first a dataBase.
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public static SQLiteConnection DbConnection(string fileName)
{
return new SQLiteConnection(new SQLitePlatformWinRT(), DBPath(fileName));
}