0
我有一個sqlite數據庫文件。我爲Sqlite使用DB Browser作爲客戶端。我進去並在大部分桌子上從命令中運行刪除。此後,我嘗試導出使用選項數據庫到SQL文件我注意到我的所有數據都出現在它。我想知道爲什麼數據沒有被刪除?我知道sqlite文件的大小不會縮小。從命令中刪除不在sqlite中工作?
以下是我的代碼片段。
string str = @"Data Source=" + userFilePath + "\\mysqlite.sqlite3";
using (SQLiteConnection con = new SQLiteConnection(str))
{
con.Open();
SQLiteTransaction trans = con.BeginTransaction();
try
{
String cmdSelect1 = "Select * from table1 where companyID='" + companyID + "' And month='" + month + "' And year='" + year + "'";
int fiscalPeriod = Convert.ToInt32(monthNumber);
int financialYear = Convert.ToInt32(itemvalueyear);
using (SQLiteCommand cmd1 = new SQLiteCommand(cmdSelect1, con, trans))
{
SQLiteDataReader dr1 = cmd1.ExecuteReader();
if (dr1.Read())
{
MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show("Records Already Exist ? Are you confirm replace it?", "Delete Confirmation", System.Windows.MessageBoxButton.YesNo);
if (messageBoxResult == MessageBoxResult.Yes)
{
String deleteTable = "Delete from table1 where companyID='" + companyID + "' And month='" + month + "' And year='" + year + "'";
using (SQLiteCommand cmdDeleteTb1 = new SQLiteCommand(deleteTable, con, trans))
{
cmdDeleteTb1.ExecuteNonQuery();
cmdDeleteTb1.Dispose();
}
foreach (object line in linesC)
{
if (line.GetType() == typeof(TypeC))
{
String cmdText2 = "INSERT INTO table1(tbID,companyID,month,year) VALUES(@tbID,@companyID,@month,@year)";
using (SQLiteCommand cmd = new SQLiteCommand(cmdText2, con, trans))
{
cmd.Parameters.AddWithValue("@tbID", tbID);
cmd.Parameters.AddWithValue("@companyID", companyID);
cmd.Parameters.AddWithValue("@month", month);
cmd.Parameters.AddWithValue("@year", year);
cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
cmd.Dispose();
}
}
}
}
}
dr1.Close();
cmd1.Dispose();
}
trans.Commit();
MessageBox.Show("Successfully Inserted Into Database");
}
catch (Exception ex)
{
MessageBox.Show("Rollback " + ex.ToString());
trans.Rollback();
}
con.Close();
con.Dispose();
GC.Collect();
發佈您的代碼,如果這不起作用 – EoinS
我已更新我的問題與我的代碼段。我不確定在執行交易時將最終確定的位置放在哪裏。但最後我con.close(),我甚至不得不運行GC.collect否則我也傾向於得到一些錯誤。請諮詢我缺少的東西? – user5313398
對此進行了研究並在看到您的代碼與您的Sql更具體的類似之處。 – EoinS