【发布时间】:2013-11-09 06:44:55
【问题描述】:
我通过 Visual Studio 2013 Express 版本创建了一个基于服务的本地数据库。连接字符串、数据集和 TableAdapter 是自动添加的。
单击按钮时,我试图通过调用 TableAdapter.Insert 插入一些数据 因为我已经有一个 dataGridView 的数据源绑定到数据集,所以我立即看到数据在运行时正确插入到表中,但是当我关闭应用程序时,实际的数据库不包含数据。因此,数据实际上并没有插入到数据库中。
根据http://msdn.microsoft.com/en-us/library/ms233812%28v=vs.110%29.aspx
使用插入,您只需调用插入,但我在表上调用 Update 和 AcceptChanges,为了安全起见,我尝试了链接中显示的第一种方法(即创建一行并将其添加到数据集,然后调用更新)为好吧,但似乎数据根本没有被插入到数据库中。
最后插入代码,rds是DataSet,ta是TableAdapter
private void AddBtn_Click(object sender, EventArgs e)
{
ta.Insert("foo", "bar", 2, "zing", "tada");
ta.Fill(rds.reminders);
rds.reminders.AcceptChanges();
ta.Update(rds.reminders);
}
【问题讨论】:
-
看起来你插入了一条记录,然后通过调用 Fill 覆盖它(虽然很长时间没有使用适配器)。注释第二行时是否有效?
-
它不会覆盖数据,而是如果我注释填充,我什至看不到 dataGridView 对运行时的影响。因此,它在被评论时不起作用。
-
如果您执行 Insert 然后 AcceptChanges,它将向数据库插入一条新记录(因为 InsertCommand 已定义)。可能的 GridView 没有反映更改,需要更新它或其他什么。
标签: c# sql-server-2012 tableadapter localdb