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;
        }
    }
}

我现在已经绝望了,请帮帮我!:(

C#:插入到SQLite数据库内容消失

您的所有数据都将消失是什么意思?!

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的旧数据。