Почему DataBinding не работает во второй раз?

1

Мой код ниже выполняет поиск записи в excel на основе текста текстового поля и привязывает его к datagrid. но если я попытался найти то же значение и связать его снова, я получил ошибку "DataBinding не может найти строку в списке, которая подходит для всех привязок". любая идея, как сбросить привязку? Я пытаюсь, чтобы форматированиеEnables установлено в true, оно не сработало. Спасибо

OleDbConnection connExcel = new OleDbConnection(_econnect);
        cmdExcel.Connection = connExcel;

        connExcel.Open();
        DataTable dt;
        DataSet ds = new DataSet();
        dt = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        OleDbDataAdapter da = new OleDbDataAdapter();
        string sheetname = "BadgeID$";
        cmdExcel.CommandText = "select ID, Name, Dept from [" + sheetname + "] where ID in (" + sss +")";
        da.SelectCommand = cmdExcel;
        da.Fill(ds);
        connExcel.Close();

       bsdata .DataSource = ds.Tables [0]; //error here
       Invoke(new MethodInvoker(() => textBox1.DataBindings.Add("Text", bsdata, "Name")));
       Invoke(new MethodInvoker(() => textBox2.DataBindings.Add("Text", bsdata, "Dept")));
  • 0
    если вы располагаете da.Fill(ds); connExcel.Close(); останова на второй строке в этой части кода da.Fill(ds); connExcel.Close(); что вы видите в DS, когда вы оцениваете ds когда вы идете в QuickWatch
Теги:
excel
data-binding
oledb

1 ответ

0
Лучший ответ

Вызовите DataBindings.Clear() для каждого из ваших текстовых полей

  • 0
    это сделал, извините, большое спасибо
  • 0
    Я думаю, что мы все застряли на чем-то подобном хотя бы один раз.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню