Реклама:

По нажатии кнопки Выбрать справочника в локальную переменную sSelectedFakulted заносится значение столбца Fakultet из текущей записи в таблице Fakultety. //---нажата кнопка "Выбрать"

private void btnSelect_Click(object sender, System.EventArgs e)

{

sSelectedFakulted = nd1.Fakultety.Rows[this.BindingContext[nd1,

"Fakultety"].Position]["Fakultet"].ToString();

}

В принимающей форме (Forml) на все время ее жизни создается экземпляр формы fSelFakultet. По нажатии кнопки эллипса этот экземпляр активизируется в модальном режиме. После того как пользователь выйдет из справочника, анализируется свойство DialogResult справочника. Если оно равно System.Windows. Forms.DialogResult.OK, то пользователь нажал кнопку Выбрать, а не вышел из справочника иным образом. В этом случае значение свойства справочника записывается в текущую ячейку элемента управления DataGrid вызывающей формы.

public class Forml : System.Windows.Forms.Form

{

//---экземляр формы выбора факультета создается на все время жизни

private fSelFakultet eSelFakultet = new fSelFakultet();

//---нажата кнопка эллипса

private void btnEllips_Click(object sender, System.EventArgs e)

{

eSelFakultet.ShowDialog();

if (eSelFakultet.DialogResult == DialogResult.OK)

{

dataGrid1[dataGrid1.CurrentCell] =

eSelFakultet.SelectedFakulted;

}

}

Динамическое связывание столбца и элемента управления

Некоторые из столбцов таблицы, с которой связан элемент управления БаЬа0г1с1, могут не быть представлены в сетке данных БаЬа0г1с1 - например, в силу большой длины и пр. Содержимое такого столбца из текущей записи таблицы можно показывать в других элементах управления, например в ТехЬБох. Если таких столбцов несколько, то можно также предоставить пользователю возможность выбирать показываемый в ТехЬБох столбец. Приложение в этом случае должно выполнять динамическое связывание элемента управления ТехЬБох и соответствующего столбца таблицы набора данных.

Ниже на рис. П-2.8 показана форма, в которой реализовано такое динамическое связывание.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. П-2.8

Для представления значений "дополнительных" столбцов таблицы служит элемент управления TextBox с именем txtBind. Выбор связываемого столбца производится в элементе управления типа СотЬоВох с именем cbCo1NamesForBind. Если в списке выбран пустой элемент, это означает отказ от связывания. Ниже на рис. П-2.9 и П-2.10 приводится пример связывания txtBind с различными столбцами таблицы.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. П-2.9

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. П-2.10

Для динамического связывания столбцов таблицы Kaf набора данных с элементом управления txtBind достаточно задать такой обработчик события смены текущего значения в элементе управления cbColNamesForBind:

private void cbColNamesForBind_SelectedValueChanged(object sender,

System.EventArgs e)

{

string sColName = "";//имя столбца таблицы Kaf

//---очистка предыдущего связывания

txtBind.DataBindings.Clear();

//---очистка содержимого текстового поля

txtBind.Text = "";

//---если имя столбца пусто, то отказ от связывания

if (cbColNamesForBind.Text != "") {

if (cbColNamesForBind.Text == "Зав. кафедрой")

{

//---связь со столбцом "Зав. кафедрой"

sColName = "Chief";

}

else {

//---связь со столбцом "Комментарий"

sColName = "Comment";

}

//---выполнить связывание

txtBind.DataBindings.Add("Text", ndl, "Kaf." + sColName);

}

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

Автор - специалист в области хранения и обработки данных, кандидат физико-математических наук, Microsoft Sertified Solution Developer.

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

Руководство разработчика с примерами на С#

Работа с данными нужна всем.

Никакое приложение — кроме, быть может школьных да хитромудрых системных, в силу их специфики , — не может обойтись без хранения данных в сторонних хранилищах — будь то гигабайтовые базы на SQL Server, небольшие базы Access или плоские таблицы dBaze.

Поэтому доступ к внешним источникам данных и их хранение в приложении является одной из существеннейших прикладных проблем, решаемых при создании приложений.

В этой книге рассказывается, как работать с данными из приложений, создаваемых на платформе .NET Framework.


⇐ Предыдущая страница| |Следующая страница ⇒