如何将BindingNavigator绑定到DataGridView

3

我有一个从数据库中通过数据集获取数据的函数

  public DataSet getDataSet(string query)
  {
      DataSet ds = new DataSet();
      OleDbDataAdapter da1 = new OleDbDataAdapter(query, sybaseconn);
      OleDbCommand cmd1 = new OleDbCommand(query, sybaseconn);
      cmd1.CommandType = CommandType.StoredProcedure;
      da1.SelectCommand = cmd1;
      da1.Fill(ds, "tbl");
      da1.Dispose();
      da1 = null;
      SybaseconnClose();
      return ds;
  }

这很好用。选择的列是“Nr”和“Remark”。 我在下一个函数中调用此函数。 我的datagridview将与数据集绑定。

  private void LoadData()
  {
     dataGridView1.DataSource = null;
     Application.DoEvents();
     TTT3Dal awdal = new TTT3Dal();
     DataSet dsAWIA = awdal.getDataSet("select_tbl");
     awdal.dsTTT3 = dsAWIA;
     dataGridView1.DataSource = dsAWIA.Tables["tbl"].DefaultView;
     bindingSource1.DataMember = "tbl";
     //dataGridView1.DataBindings.Add("Text", bindingSource1, "nr"); 
 }

这也可以正常工作。 在表单中,我调用了最后一个函数和bindingNavigator。

  public Form1()
  {
     InitializeComponent();
     LoadData();
     bindingNavigator1.BindingSource = bindingSource1;
  }

正常运行,但是如果我取消这一行注释

//dataGridView1.DataBindings.Add("Text", bindingSource1, "nr");

我会得到以下错误

无法绑定到数据源上的属性或列 nr。 参数名称:dataMember

我试图通过添加以下代码来解决此问题

dataGridView1.DataMember = "tbl";

但是然后我会得到以下错误

无法创建字段 tbl 的子列表。

请问有人能帮我解决这个问题并帮我将 datagridview 绑定到 bindingnavigator 吗?

1个回答

3
没关系,我用下面的代码解决了它。
  private void LoadData()
  {
     dataGridView1.DataSource   = null;
     TTT3Dal awdal              = new TTT3Dal();
     DataSet dsAWIA             = awdal.getDataSet("select_tbl");
     awdal.dsTTT3               = dsAWIA;

     BindingNavigator _bindnav  = new BindingNavigator(true);
     bindingSource1.DataSource = dsAWIA;
     bindingNavigator1.BindingSource = bindingSource1;

     dataGridView1.DataSource = bindingSource1;
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接