将 DataGridView 绑定到 BindingNavigator 时出错
Posted
技术标签:
【中文标题】将 DataGridView 绑定到 BindingNavigator 时出错【英文标题】:Error when binding a DataGridView to a BindingNavigator 【发布时间】:2012-07-15 08:41:24 【问题描述】:我有以下小child形式:
要将控件链接到我的数据库表,到目前为止,我已经获得了以下内容。
我尝试以类似的方式将 datagridview 链接到导航器,我将文本框链接到导航器 - 加入这些控件的正确语法是什么?
public SqlCeConnection conn = new SqlCeConnection(ConfigurationManager.ConnectionStrings["WindFormAppRevisionHelper.Properties.Settings.DefinitionsDBConnectionString"].ConnectionString);
BindingSource rawtableBindingSource = new BindingSource();
public uxFormDatabase()
InitializeComponent();
fillTheDGVusingAdapter();
public void fillTheDGVusingAdapter()
SqlCeDataAdapter da = new SqlCeDataAdapter(new SqlCeCommand("Select * From tb_Definitions", conn));
DataSet ds = new DataSet("DGVdata");
ds.Tables.Add("rawTable");
da.Fill(ds.Tables["rawTable"]);
uxDGVtable.DataSource = ds.Tables["rawTable"];
rawtableBindingSource.DataSource = ds.Tables["rawTable"];
uxrawdataBindingNavigator.BindingSource = this.rawtableBindingSource;
//PROBLEM WITH THE FOLLOWING LINE
uxDGVtable.DataSource = DataBindings.Add(new Binding("Text", uxrawdataBindingNavigator, "Item_Id", true));
【问题讨论】:
【参考方案1】:有点不清楚你在做什么,因为前面3行,你已经设置了uxDGVtable控件的DataSource。
尝试只使用 Navigator 正在使用的同一个 BindingSource:
// uxDGVtable.DataSource = ds.Tables["rawTable"];
uxDGVtable.DataSource = this.rawtableBindingSource;
【讨论】:
好的 - 这是否意味着导航器和 datagridview 上的所有按钮都将链接到数据库表,即通过这些控件所做的任何更改都将保存到数据库中? @whytheq 是的,对网格使用相同的绑定源,导航器会将它们链接在一起。但它不会自动保存数据,您仍然需要通过适当的更新调用自己来完成。 大声笑...只是在阅读您的评论并遇到更多问题之前尝试保存! (我的这个 winForm 的第一次迭代工作正常,但我正在尝试编写这个新版本,而不使用向导为我创建数据集和绑定……对于像我这样的新手来说,这很痛苦,但希望是值得的)。我会将保存问题作为新问题发布 ...我添加了与同一表格相关的另一个问题:HERE以上是关于将 DataGridView 绑定到 BindingNavigator 时出错的主要内容,如果未能解决你的问题,请参考以下文章
将 DataGridView 绑定到 BindingNavigator 时出错
如何将 DataGridView 组合框添加到绑定的 DataGridView 数据源(以编程方式)