Как связать привязку навигатора к датагридью - PullRequest
2 голосов
/ 18 декабря 2009

У меня есть функция для извлечения данных из базы данных через набор данных

  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» Я вызываю эту функцию в следующей функции. Мое представление данных будет связано с набором данных.

  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.

Может ли кто-нибудь помочь мне решить эту проблему и помочь мне связать обзор данных с привязывающим навигатором

1 Ответ

3 голосов
/ 18 декабря 2009

Никогда, я решил это с помощью следующего кода

  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;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...