2010-08-05 2 views
1

У меня есть таблица, связывающая идентификатор с именем и фамилией клиента (два отдельных поля). У меня есть TextBox на моей форме для пользователя, чтобы ввести идентификатор клиента, и я хотел бы автоматическое обновление имени, отображаемого на этикетке, например:Связывание полей имени и фамилии на ярлыке?

TextBox: 1 --> Label: "Sam Pell" (user types 1) 
TextBox: 12 --> Label: "Andy Other" (user types 2) 

У меня есть два вопроса, на самом деле - я новый для привязки данных в .NET:

  • Как я могу сделать содержимое TextBox обновленным отображаемым именем на ярлыке?
  • Как я могу отобразить два отдельных поля (объединенных) в пределах одного элемента управления Label?

В настоящее время я использую компоненты привязки данных Visual Studio; а именно: BindingSource, TableAdapter и DataSet.

ответ

1

Тип, который вы связываете, может иметь свойство readonly, которое имеет объединенное значение.

public class Person 
{ 
    string Forename { get; set; } 
    string Surname { get; set; } 
    string FullName 
    { 
     get { return String.Format("{0} {1}", Forename, Surname); } 
    } 
} 

Затем привяжите свойство FullName к элементу управления ярлыками.

Если вы используете DataSet, добавьте специальный столбец в свой DataTable с выражением «forename + '' + surname». More info here.

Чтобы обновить этикетку, вы должны обрабатывать TextChanged события вашего текстового поля:

textBox1.TextChanged +=() => label1.Text = (string) dt.Rows.Find(textBox1.Text)["columnName"]; 

где имя столбца имя вашего нового столбца.

+0

Мне нужна метка, чтобы отобразить имя клиента на основе идентификатора, введенного в текстовое поле, чтобы просто воспроизвести текст. – Rezzie

+0

Спасибо. Очень полезно. – Rezzie

0

Как вы получаете значения из базы данных? Возможно, вы можете изменить свой запрос, чтобы объединить значения, подобные этому;

SELECT firstName + " " + surname FROM user 

Таким образом, у вас только одно значение, с которым можно бороться при привязке данных.

+0

У меня есть DataSet с TableAdapters и BindingSource - я не написал никакого SQL, так что не смог бы их конкатенировать? – Rezzie

Смежные вопросы