插入查询运行成功,但数据没有插入数据库(C#)

Insert query is run successfully, but the data is not inserted into the database (C#)

public partial class Form1 : Form
{
    OleDbConnection connection = new OleDbConnection(check.Properties.Settings.Default.KitchenConnectionString);

    public Form1()
    {
        InitializeComponent();
    }

    private void btn_add_Click(object sender, EventArgs e)
    {
        OleDbDataAdapter items = new OleDbDataAdapter();
        connection.Open();

        OleDbCommand command = new OleDbCommand("insert into Sets(SetId, SetName,  SetPassword) values('"+txt_id.Text+ "','" + txt_setname.Text + "','" + txt_password.Text + "');", connection);
        command.CommandType = CommandType.Text;

        command.ExecuteReader();

        connection.Close();

        MessageBox.Show("Inserted!");
    }
}

鉴于它是 Ole,我猜这是 Access——一个基于文件的数据库。您的插入 运行ning 成功,但是当您查看

时没有在数据库中找到数据

您需要了解,通常使用访问数据库的 ba 探测器,您将拥有该数据库的多个副本,但最相关的副本可能如下所示:

C:\myprojects\windowsapp1\your.accdb 
C:\myprojects\windowsapp1\bin\debug\your.accdb 

第一个是您在解决方案资源管理器中看到的数据库。每次 运行 构建时,或者可能每次在 VS 中单击播放时,第二个都放在调试 exe 旁边。第二个可能是您的程序插入的数据库

您要么在错误的数据库中查找数据,要么每次您 运行 您的程序时,构建过程都会通过复制空数据库(第一个)覆盖其顶部来擦除更改数据库.

运行 您的应用程序,插入您的数据,不要退出您的应用程序,在整个项目文件夹中搜索您的 db 文件的所有实例。看看所有这些。您可能会找到您的数据

  • 在解决方案资源管理器中右键单击 db 文件,选择属性,然后将复制操作更改为如果较新则复制

现在,如果您对源数据库进行了更改,构建过程只会删除调试文件夹中的数据库,例如向其添加 table 等