如何将bindingnavigator绑定到datagridview

时间:2009-12-18 11:50:35

标签: datagridview

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

  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”和“备注” 我在下一个函数中调用此函数。 我的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“); 我收到此错误

  

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

我尝试通过添加行

来解决这个问题
  

dataGridView1.DataMember =“tbl”;

但后来我收到了错误

  

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

有人可以帮我解决这个问题,并帮我将datagridview绑定到bindingnavigator

1 个答案:

答案 0 :(得分: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;
  }