我目前正在使用C#编写应用程序并使用sqlite作为嵌入式数据库.我有我的应用程序在启动时创建一个新的数据库,但我如何让它检查数据库是否存在?如果确实存在,我如何使用它,如果不存在如何创建新数据库?
这是我到目前为止:
private void MainWindow_Loaded(object sender, EventArgs e)
{
SQLiteConnection sqlite_conn;
SQLiteCommand sqlite_cmd;
bool newdb = false;
if (newdb == true)
{
sqlite_conn = new SQLiteConnection("DataSource=database.db;Version=3;");
sqlite_conn.Open();
MessageBox.Show("31");
}
else
{
sqlite_conn = new SQLiteConnection("Data Source=database.db;Version=3;New=True;Compress=True;");
sqlite_conn.Open();
sqlite_cmd = sqlite_conn.CreateCommand();
sqlite_cmd.CommandText = "CREATE TABLE Client (id integer primary key, Title varchar(100),Name varchar(100),Surname varchar(100),Dateofbirth DateTime , Propertyname varchar(100),Moveindate DateTime,Relationship varchar(100),Spouse varchar(100),Gender varchar(100), spTitle varchar(100),SpouseName varchar(100),SpouseSurname varchar(100),spDateofbirth DateTime ,spRelationship varchar(100),spSpouse varchar(100),spGender varchar(100));";
sqlite_cmd.ExecuteNonQuery();
}
sqlite_conn.Close();
MessageBox.Show("dasdas");
}
Run Code Online (Sandbox Code Playgroud)
Tyl*_*D87 30
怎么样:
if(File.Exists("database.db"))
Run Code Online (Sandbox Code Playgroud)
编辑:更改了原始代码中匹配源的路径.
小智 5
public async Task<bool> IsDbExists(string fileName)
{
try
{
var item = await ApplicationData.Current.LocalFolder.GetFileAsync(fileName);
var db = new SQLiteConnection(DbHelper.DBPATH);
var tb1 = db.GetTableInfo("Domain");
var tb2 = db.GetTableInfo("Account");
var tb3 = db.GetTableInfo("Product");
var tb4 = db.GetTableInfo("Review");
if (item == null || tb1.Count == 0 || tb2.Count == 0 || tb3.Count == 0 || tb4.Count == 0)
{
return false;
}
else
{
return true;
}
}
catch
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
This is one of the solution