C#:插入到SQLite数据库内容消失
本文关键字:消失 数据库 SQLite 插入 | 更新日期: 2023-09-27 18:20:17
我刚开始在c#中使用sqlite,这一切都很简单,但后来我意识到,在重置应用程序后,保存的数据将消失。
因此,我试图找到一种方法将我的数据存储在某种文件中。
XML派上了用场,因为还有一个函数可以向数据库写入/从数据库读取XML。
所有这些都很好,没有任何问题。
我启动了应用程序,上次存储到数据库中的所有数据都还在!
现在我尝试将一些新数据附加到数据库中,它可以工作,但现在除了新行之外,以前存储在数据库中的所有数据都不见了。。。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
datenbankDataSet.ReadXml(@"C:'Users'ekehr'Desktop'newXML.xml");
datenbankDataSet.AcceptChanges();
}
private void button1_Click(object sender, EventArgs e)
{
// TODO: Diese Codezeile lädt Daten in die Tabelle "datenbankDataSet.Table". Sie können sie bei Bedarf verschieben oder entfernen.
this.tableTableAdapter.Fill(this.datenbankDataSet.Table);
SqlConnection cn = new SqlConnection(global::SQL_ENTRY.Properties.Settings.Default.DatenbankConnectionString);
try
{
string sql = "INSERT INTO [Table] (Id, name) VALUES("+textBox1.Text+", '"+textBox2.Text+"')";
Console.WriteLine(sql);
SqlCommand exeSQL = new SqlCommand(sql, cn);
cn.Open();
exeSQL.ExecuteNonQuery();
this.tableTableAdapter.Fill(this.datenbankDataSet.Table);
cn.Close();
MessageBox.Show("NEUER EINTRAG!","INFO");
datenbankDataSet.AcceptChanges();
datenbankDataSet.WriteXml(@"C:'Users'ekehr'Desktop'newXML.xml");
}
catch (Exception)
{
throw;
}
}
}
我现在已经绝望了,请帮帮我!:(
您的所有数据都将消失是什么意思?!
Sqlite只是一个文件数据库。它的作用就像一个SQL DB,但它不是运行SQL服务等,而是将数据本地存储在一个文件中(通常扩展名为.sqlite
,但这并不重要),然后您可以四处移动。
此外,它是免费的。我们喜欢免费。
话虽如此,如果你只是在嘲笑数据并想保存它,你总是可以将它写入/附加到文件中。例如:
var path = @"C:'test.txt"; // Where to save to
// Lets assume this is your input
var lines = new string[] {"one line", "two line", "three line", "party"};
// This will simply write them all to the file
System.IO.File.WriteAllLines(path, lines);
// This will append them to the file
System.IO.File.AppendAllLines(path, lines);
// And then you can read it back
var loaded_from_file = System.IO.File.ReadAllLines
根据评论,我仍然不确定为什么要用XML数据填充sqlitedb,但无论如何,请下载sqliteadimn。它是sqlite的DB查看器,可以让您轻松地打开sqlite文件,查看里面的内容,并处理数据。希望有帮助:)
为什么每次查询数据库时都要插入id,这可能是问题所在。这可以替换具有相同id的旧数据。