c# - SQL Server 插入问题。数据插入操作成功,但关闭应用程序重新打开后找不到数据
问题描述
我正在尝试编写一个带有附加数据库的 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 文件,但您的应用程序更改的 MDF 位于 BIN\DEBUG 或 BIN\RELEASE 子文件夹中 - MDF 被复制到那里在构建期间)
或者
对于您的 MDF 文件,您将“复制到输出文件夹”设置为始终复制,因此您的构建价格总是用项目文件夹中的新空白数据库覆盖您的 exe 正在编辑的 MDF(在 BIN\xxx 子文件夹中)
单击解决方案资源管理器中的 MDF,然后在属性窗口中将复制选项设置为 Copy If Newer。始终对项目文件夹中的 MDF 进行架构更改,而不是 bin 文件夹。请注意,当您进行架构更改等时,文件将变得更新并覆盖您的测试数据 - 如果您想保留程序编写的测试数据和其他时间,请先从 bin 文件夹中复制文件,然后更改架构,然后它将在构建期间再次复制出来
哦,顺便说一句;查看http://dapper-tutorial.net - 它可以节省您编写繁琐的数据访问代码的时间;您在帖子中编写的所有代码都可以减少到大约 4 行
推荐阅读
- angular - 测试广播服务
- reactjs - React Render 在组件内部不起作用
- node.js - Hyperledger Fabric:如何使用 JS/Node 中的链码捕获交易错误?
- dns - 我可以使用 ANAME(别名)将域指向 CloudFlare CDN 吗?
- python - ansi_re.append(re.compile(br'\xc0\xa8\x02\x17')) 需要正则表达式的含义
- c - 打印数组的最小值和最大值
- java - WebView 中的弹出对话框超出当前显示,但在 chrome 浏览器中完美运行
- arduino - 当我将手指放在它的输出侧时触发光隔离器 4n35
- firebase - 如何使用 Flutter 从 Firebase 中的子集合中访问字段值?
- visual-studio-2019 - Visual Studio 2019 Pro 版中未显示 Live Share 音频