将 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 控件

将 DataGridView 绑定到 BindingNavigator 时出错

如何将 DataGridView 组合框添加到绑定的 DataGridView 数据源(以编程方式)

将 DataTable 绑定到已定义列的 Datagridview

如何将列表绑定到 dataGridView?

将实体框架对象绑定到 Datagridview C#