SQL Server插入问题。数据插入操作成功,但是在关闭应用程序并重新打开之后,找不到数据[重复]

问题描述 投票:0回答:1

我正在尝试编写一个具有附加数据库的C#应用​​程序。

因此,我执行了一个插入操作,该插入操作非常正常,并且在插入操作后,可以在数据网格视图中看到我的数据。但是在关闭应用程序后,我看到我的数据表为空。因此,我重新打开了应用程序,数据网格视图也为空。

这是我的示例代码:

插入

    private void button_create_Click(object sender, EventArgs e)
    {
        int id = 7;

        string ConStr = ConfigurationManager.ConnectionStrings["Doctor_s_Assistant.Properties.Settings.DocAssistDBConnectionString"].ConnectionString;
        SqlConnection offDBconnection = new SqlConnection(ConStr);

        offDBconnection.Open();

        string sqlCommand = "INSERT INTO Treatment_Template VALUES (@id, @t_name, @t_body, @t_advice)";

        SqlCommand sql = new SqlCommand(sqlCommand, offDBconnection);

        sql.Parameters.AddWithValue("@id",id);
        sql.Parameters.AddWithValue("@t_name", textBox_temp_name.Text);
        sql.Parameters.AddWithValue("@t_body", richTextBox_temp_body.Text);
        sql.Parameters.AddWithValue("@t_advice", richTextBox_temp_advice.Text);

        sql.ExecuteNonQuery();
        offDBconnection.Close();

        MessageBox.Show("New Template Created");
    }

预览数据:

    private void button_Load_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\DocAssistDB.mdf;Integrated Security=True");
        con.Open();

        SqlCommand cmd = new SqlCommand("select * from Treatment_Template", con);

        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);

        dataGridView1.DataSource = dt;

        con.Close();
    }

提前感谢

c# sql-server visual-studio
1个回答
0
投票

[您正在寻找错误的数据库(正在csproj旁边的项目主文件夹中寻找MDF文件,但是您在BIN \ DEBUG或BIN \ RELEASE子文件夹中找到了您的应用更改的MDF-MDF为在构建过程中复制到那里)

对于您的MDF文件,您已将“复制到输出文件夹”设置为“始终复制”,因此您的构建价格将始终用项目文件夹中的新空白数据库覆盖exe正在编辑的MDF(在BIN \ xxx子文件夹中) >


在解决方案资源管理器中单击MDF,然后在“属性”窗口中将复制选项设置为“如果更新则复制”。始终对项目文件夹(而不是bin文件夹)中的MDF进行架构更改。请注意,当您进行架构更改等时,文件将变得更新并覆盖测试数据-如果您要保留程序编写的测试数据和其他计时信息,请先从bin文件夹复制回文件,然后更改架构,然后它将在构建过程中再次复制出来


哦,顺便说一句;签出http://dapper-tutorial.net-它将节省您编写繁琐的数据访问代码所浪费的时间;您在帖子中编写的所有代码都可以减少到大约4行

© www.soinside.com 2019 - 2024. All rights reserved.