Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не работает связь Binding с БД

26K
21 июня 2008 года
GoreNJ
33 / / 02.09.2007
Код:
String str = String.Concat("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=", Directory.GetCurrentDirectory().ToString(), "\\PB.mdb");
            OleDbConnection cn = new OleDbConnection(str);
            cn.Open();
            String strSelect = "SELECT * FROM Nms";
            OleDbDataAdapter da = new OleDbDataAdapter(strSelect, cn);
            DataSet ds = new DataSet();
            da.Fill(ds, "Nms");
            cn.Close();

            Binding b = new Binding("Text", ds, "Nms.ID");
            textBox1.DataBindings.Add(b);

PB.mdb - база данных. В ней есть таблица Nms, с полем ID. Хочу программно(не используя визуальные средства VS) связать тестовое поле со значением ID в БД.

Следующие куски кода, по идее связывающие элементы управления с БДвзяты из MSDN, но при выполнении программы не работают
 
Код:
Binding b = new Binding("Text", ds, "Nms.ID");
            textBox1.DataBindings.Add(b);

 
Код:
textBox1.DataBindings.Add("Text", ds, "Nms.ID");


Вываливается ошибка:
 
Код:
System.ArgumentException: Два связывания в коллекции привязываются к одному свойству.
Имя параметра: binding
   в System.Windows.Forms.ControlBindingsCollection.CheckDuplicates(Binding binding)
   в System.Windows.Forms.Binding.CheckBinding()
   в System.Windows.Forms.Binding.SetBindableComponent(IBindableComponent value)
   в System.Windows.Forms.ControlBindingsCollection.AddCore(Binding dataBinding)
   в System.Windows.Forms.ControlBindingsCollection.Add(String propertyName, Object dataSource, String dataMember, Boolean formattingEnabled, DataSourceUpdateMode updateMode, Object nullValue, String formatString, IFormatProvider formatInfo)
   в System.Windows.Forms.ControlBindingsCollection.Add(String propertyName, Object dataSource, String dataMember)
   в PupilBase.Form1.TableFill() в D:\Visual studio projects\Igor\PupilBase\PupilBase\PupilBase\Form1.cs:строка 60

где строка 60, собственно и есть связывание:
 
Код:
textBox1.DataBindings.Add("Text", ds, "Nms.ID");



Проблемы начинаются, когда существует соединение с текстовым полем(которое отображает ID), и осуществляется какая-то выборка из базы(к примеру по конкретному значению в другом поле).
80K
07 февраля 2012 года
akun
1 / / 07.02.2012
может кому нибудь и пригодится но надо датабиндинг очистить перед тем как заново дать значение
textBox1.DataBindings.Clear();
textBox1.DataBindings.Add("Text", ds, "Nms.ID");
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог