【发布时间】:2016-03-17 18:20:27
【问题描述】:
在我的 VS2015 Winforms 应用程序中,我创建了一个 DataGridView 和一个 BindingNavigator。以下代码成功显示 DataGridView 中的数据,我可以使用 BindingNavigator 导航数据行。但是当我尝试使用 BindingNavigator 上的内置添加/删除按钮添加/删除一行时,数据库不会反映这些更改。
守则:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
SqlDataAdapter dadapter;
DataSet dset;
BindingSource bs;
string connstring = "database=emp;server=.;user=sa;password=wintellect";
private void Form2_Load(object sender, EventArgs e)
{
dadapter = new SqlDataAdapter("select * from emp_detail", connstring);
dset = new DataSet();
dadapter.Fill(dset);
bs = new BindingSource();
bs.DataSource = dset.Tables[0].DefaultView;
bindingNavigator1.BindingSource = bs;
dataGridView1.DataSource = bs;
}
}
【问题讨论】:
-
您应该创建用于保存更改的代码。
-
数据库?它所做的(并且一直在做的)就是从
DataTable中删除DataRow。这是内存结构。 -
DataTable 中的更改通过 DataAdapter 反映到数据库。 DataAdapter 必须包含正确的 Insert、Update、Delete 命令定义(在当前情况下,此命令可以自动生成)并且在用户端编辑后您应该调用 Update 方法:msdn.microsoft.com/en-us/library/xzb1zw3x.aspx
标签: c# winforms datagridview bindingnavigator