我正在尝试编写一个具有附加数据库的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();
}
提前感谢
[您正在寻找错误的数据库(正在csproj旁边的项目主文件夹中寻找MDF文件,但是您在BIN \ DEBUG或BIN \ RELEASE子文件夹中找到了您的应用更改的MDF-MDF为在构建过程中复制到那里)
或
对于您的MDF文件,您已将“复制到输出文件夹”设置为“始终复制”,因此您的构建价格将始终用项目文件夹中的新空白数据库覆盖exe正在编辑的MDF(在BIN \ xxx子文件夹中) >
在解决方案资源管理器中单击MDF,然后在“属性”窗口中将复制选项设置为“如果更新则复制”。始终对项目文件夹(而不是bin文件夹)中的MDF进行架构更改。请注意,当您进行架构更改等时,文件将变得更新并覆盖测试数据-如果您要保留程序编写的测试数据和其他计时信息,请先从bin文件夹复制回文件,然后更改架构,然后它将在构建过程中再次复制出来
哦,顺便说一句;签出http://dapper-tutorial.net-它将节省您编写繁琐的数据访问代码所浪费的时间;您在帖子中编写的所有代码都可以减少到大约4行