powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Databinding не работает
24 сообщений из 24, страница 1 из 1
Databinding не работает
    #32964413
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
label17.DataBindings.Add("Value",view,"ID");
BindingContext[view].Position=manager.Position;

поле ,"ID" - это автонамбер. Что нужно написать вместо "Value", чтобы отобразить число?
...
Рейтинг: 0 / 0
Databinding не работает
    #32964450
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну "Text" наверно
...
Рейтинг: 0 / 0
Databinding не работает
    #32964455
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неа.. не "Text". Тоже не работает..
...
Рейтинг: 0 / 0
Databinding не работает
    #32964545
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели никто..
...
Рейтинг: 0 / 0
Databinding не работает
    #32964570
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тебе Артём правильно посоветовал - нужно свойство Text
Код: plaintext
label17.DataBindings.Add("Text", view, "ID");
а вот эта строчка непонятно причем здесь:
BindingContext[view].Position=manager.Position;она должна быть в обработчике события CurrencyManager.CurrentChanged
...
Рейтинг: 0 / 0
Databinding не работает
    #32964619
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неа, говорю же, Text не помогает. Он работает, если поле ID - текстовое, но оно - number, вернее, autonumber
...
Рейтинг: 0 / 0
Databinding не работает
    #32964627
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может мы о разных контролах говорим ?
label17 у тебя - это System.Windows.Forms.Label ?

при такой привязке он работает с ЛЮБЫМ чиловым форматом данных (int, decimal и пр.)

у тебя вообще что-нибудь показывается в этом контроле (label17) ?
...
Рейтинг: 0 / 0
Databinding не работает
    #32964633
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+
это в БД Access это поле имеет тип Autonumber. после заполнения таблицы (DataTable) эта колонка имеет тип System.Int32
...
Рейтинг: 0 / 0
Databinding не работает
    #32964641
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, label17 - это System.Windows.Forms.Label .

авторэто в БД Access это поле имеет тип Autonumber. после заполнения таблицы (DataTable) эта колонка имеет тип System.Int32 - да я знаю, знаю, вопрос какой propertyname для него писать..
...
Рейтинг: 0 / 0
Databinding не работает
    #32964643
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автору тебя вообще что-нибудь показывается в этом контроле (label17) ?

Покаывается, т.е если например вместо ID привязать какой-нибудь текст из той же таблицы - показывает
...
Рейтинг: 0 / 0
Databinding не работает
    #32964644
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лови тестовый пример
создай новоы проект WinForms и замени весь текст в Form1 на приложенный текст.

и потом ответь на вопрос - почему в этом примере привязка поля типа int в System.Windows.Forms.Label для свойства Text работает, а у тебя нет :)
...
Рейтинг: 0 / 0
Databinding не работает
    #32964654
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, сообщаю о проделанной работе.. :)
Так вот, в случае, если в бд поле является простым Number - > всё работает.
Но если это индекс - и AutoNumber - нифига.
...
Рейтинг: 0 / 0
Databinding не работает
    #32964662
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создал в Access таблицу TBL1 c полями
id - AutoNumber + primary key
nm - Text
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public BindInt32Class()
{
  InitializeComponent();
			
  DataTable tbl=new DataTable("AccessTable");
			
  OleDbConnection  cn=new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\db1A.mdb;");
  OleDbDataAdapter ad=new OleDbDataAdapter("SELECT * FROM [TBL1]", cn);
  ad.MissingSchemaAction=MissingSchemaAction.AddWithKey;
  ad.Fill(tbl);
			
  this.view=new DataView(tbl);
  this.label17.DataBindings.Add("Text", this.view, "id"); // int
  this.label18.DataBindings.Add("Text", this.view, "nm"); // string
			
}
и теперь догадайся - какой результат ?
да, все работает ...
...
Рейтинг: 0 / 0
Databinding не работает
    #32964669
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, мистика..
Может быть дело в том, что речь идёт о 2-х таблицах, связанных по полю ID?
Типа,

Select* From (Customers INNER JOIN Orders ON Customers.ID = Orders.CustomersID)...
Уже сил нет сегодня на это...
...
Рейтинг: 0 / 0
Databinding не работает
    #32964670
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.ты вообще-то поле ID считываешь в SELECT ?

2.при выполнении такой привязки:label17.DataBindings.Add("Text", view, "ID"); исключения не происходит (поставь try-catch-finally) ?
...
Рейтинг: 0 / 0
Databinding не работает
    #32964671
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё равно, спасибо тебе за помощь..
...
Рейтинг: 0 / 0
Databinding не работает
    #32964674
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё равно, спасибо тебе за помощь..
...
Рейтинг: 0 / 0
Databinding не работает
    #32964675
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считываю...
Try стоит, исключения не происходит..
...
Рейтинг: 0 / 0
Databinding не работает
    #32964679
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
под занавес сегодняшних суток :)
В общем, мистика..
Может быть дело в том, что речь идёт о 2-х таблицах, связанных по полю ID?
а вот это может быть уже другой разговор. посмотри в DataTable и увидишь как эти поля называются после SELECT. возможно дело в именах колонок
...
Рейтинг: 0 / 0
Databinding не работает
    #32964685
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ
если по запросу
Код: plaintext
SELECT * ... JOIN ... 
выбираются поля с одинаковыми именами из разных таблиц, то ADO их "успешно" переименовывает. в товоем случае это могут быть имена Customers.ID и Orders.ID у колонок в DataTable

в таких случаях лучше имена алиасить через AS в запросе.
...
Рейтинг: 0 / 0
Databinding не работает
    #32964707
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты умница..

была попытка делать Customers.ID , а вот альянсить - нет..

и теперь догадайся - какой результат ?
да, все работает ... (с) :)
...
Рейтинг: 0 / 0
Databinding не работает
    #32964711
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но почему же всё-таки Customers.ID не прошло?
В чём тут фишка?
...
Рейтинг: 0 / 0
Databinding не работает
    #32964714
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но почему же всё-таки Customers.ID не прошло?если попытаешься сделать Binding на DataTable (DataSource) и "Customers.ID" (DataMember), то для ADO.NET - это прямое указание: искать DataRelation с именем Customers, по нему (relation'у) связанную таблицу и в ней поле ID.


вот такая вот несогласованность ADO.NET и обычного ADO. если делать типизированный DataSet по такому запросу, то в полученной таблице будут поля Customers_ID и Oreders_ID, т.е. будет проведена замена точки на подчеркивание. что совсем весело :)
...
Рейтинг: 0 / 0
Databinding не работает
    #32964734
ProstoPuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даа.. весело..
Большущий тебе сенкс! :)
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Databinding не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]