【发布时间】:2015-05-01 11:38:06
【问题描述】:
我正在尝试使用Windows phone 8 应用程序,但我在这里陷入了一个奇怪的境地。我正在使用 sqlite 来创建 sqlite db 并将值添加到数据库中。我能够创建数据库并成功在数据库中添加值,但我在这里遇到了一个奇怪的情况。
每次我关闭模拟器并再次启动项目时,都会再次创建数据库,这不应该发生,因为我在第一次运行应用程序时创建了数据库。
有谁知道为什么,以及如何防止它每次都重新创建数据库?
public string DB_PATH = Path.Combine(Path.Combine(ApplicationData.Current.LocalFolder.Path, "aa.sqlite"));
private SQLiteConnection dtCon;
public MainPage()
{
InitializeComponent();
CreateDatabase();
dtCon = new SQLiteConnection(DB_PATH);
var tp = dtCon.Query<Contacts>("select * from contacts").ToList();
}
private async void CreateDatabase()
{
bool isDatabaseExisting = false;
//Checking if database already exists
try
{
Windows.Storage.StorageFile storagefile = await Windows.Storage.ApplicationData.Current.LocalFolder.GetFileAsync("aa.sqlite");
isDatabaseExisting = true;
}
catch
{
isDatabaseExisting = false;
}
//if not exists then creating database
if (!isDatabaseExisting)
{
String str = System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "sqlite.db");
AddDataToDB(DB_PATH);
}
}
private void AddDataToDB(string str)
{
// Create the database connection.
dtCon = new SQLiteConnection(str);
// Create the table Task, if it doesn't exist.
dtCon.CreateTable<Contacts>();
Contacts oContacts = new Contacts();
oContacts.Name = "dfgdf";
oContacts.Detail = "asdfsf";
dtCon.Insert(oContacts);
}
【问题讨论】:
标签: database sqlite visual-studio-2012 windows-phone-8