Разработка Windows-приложений с использованием ADO.Net для подключения к базе данных. Использование элементов управления с привязкой данных, страница 3

btnModify.Enabled = false; btnError.Visible = false; btnDone.Visible = false; I    grpStatus.Visible = false; }

В следующем фрагменте приведен код обработки события click кнопки Сохранить.

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

// Проверка на наличие ошибки

if (txtFName.Text.Length == 0 | txtLName.Text.Length == 0 | txtPhone.Text.Length == 0 I txtAddress.Text.Length == 0 | txtCity.Text.Length ==0 | txtState.Text.Length == 0 | txtZip.Text.Length==O | txtContract.Text.Length ==0)

{

lbllnfo.ForeColor = Color.Red;

lbllnfo.Text = "Пропущены данные!!"; lbllnfo.Visible = true; btnError.Visible = true; grpStatus.Visible = true; return;

string strSQL;

strSQL = "update authors set " + "au_lname = @LN ," + "au_fname = @FN ," + "phone = @PH ," + "address = @AD ," + "city = @CI ," + "state - @ST ," + / "zip= @ZI ," +

"contract = @CO " + "where au_id= @ID";

// Проверка, не открыто ли соединение

try

{

if (sqlConnectionl.State != ConnectionState.Open )

{

sqlConnectionl.Open ();

}      

// Создание объекта SqlCommand

SqlCommand myComm;

myComm = new SqlCommand(strSQL,sqlConnection1);

// Присвоение объекта SqlCommand свойству UpdateCommand объекта Data

// Adapter

sqlDataAdapter1.UpdateCommand = myComm;

sqlDataAdapter1.UpdateCommand.Parameters.Add("@LN",

SqlDbType.VarChar, 20).Value = txtLName.Text;

sqlDataAdapterl.UpdateCommand.Parameters.Add("@FN",

SqlDbType.VarChar, 40).Value = txtFName.Text;

sqlDataAdapter1.UpdateCommand.Parameters.Add("@PH",SqlDbType.Char,

12).Value = txtPhone.Text;

sqlDataAdapter1.UpdateCommand.Parameters.Add("@AD",SqlDbType.VarChar

, 40).Value = txtAddress.Text;

sqlDataAdapter1.UpdateCommand.Parameters.Add("@CI",SqlDbType.VarChar,

20).Value = txtCity.Text;

sqlDataAdapter1.UpdateCommand.Parameters.Add("@ST",SqlDbType.Char,

2).Value = txtState.Text;

sqlDataAdapterl.UpdateCommand.Parameters.Add("@ZI",SqlDbType.Char,

5).Value = txtZip.Text;

sqlDataAdapterl.UpdateCommand.Parameters.Add("@CO",SqlDbType.Bit).Value

= Convert.ToBoolean(txtContract.Text );

sqlDataAdapter1.UpdateCommand.Parameters.Add("@ID",SqlDbType.VarChar, 11).Value = txtlD.Text;

// Выполнение команды Update

sqlDataAdapterl.UpdateCommand.ExecuteNonQuery ();

}

catch(Exception E1)

{

lbllnfo.ForeColor = Color.Red;

lbllnfo.Text = "Ошибка!!!: \n" + E1.Message ;

btnDone.Visible = false;

btnError.Visible = true;

grpStatus.Visible = true;

lbllnfo.Text = "Запись сохранена!! \n Author ID: " + txtlD.Text;

lbllnfo.ForeColor = Color.Blue;

btnDone.Visible = true;

btnError.Visible = false;

grpStatus.Visible = true;

// Код для манипулирования элементами управления

ddlAuthors.Enabled = true;

txtlD.Enabled = false;

txtLName.Enabled = false;

txtFName.Enabled = false;

txtPhone.Enabled = false;

txtAddres5.Enabled = false;

txtCity.Enabled = false;

txtState.Enabled = false;

txtZip.Enabled = false;

txtContract.Enabled = false;

btnCancel.Enabled = false;

btnSave.Enabled = false;

btnModify.Enabled = true;

)

Только что приведенный код использует параметризованный SQL-оператор для обновления записи об авторе. В этом операторе создается строка, которая содержит SQL-запрос вместе со встроенными "заполнителями" (placeholders) параметров. Встроенные "заполнители" помечаются с помощью символа <@> с последующим именем, например, @ID. Созданная строка используется вместе с объектом SqlConnection для инициализации объекта SqlCommand. Затем объект SqlCommand присваивается свойству InsertCommand объекта sqlDataAdapter. Кроме того, добавляются параметры к коллекции Parameters свойства SelectCommand объекта sqlDataAdapter. Важно при добавлении параметров сохранять ту последовательность, в которой записаны "заполнители" в строке запроса. Лучше добавлять параметры в виде пар: имя/значение. Такой способ позволит легко ссылаться на эти элементы в коде. К ним можно получить доступ также с помощью индексного номера, но доступ по именам порождает сравнительно меньшее количество ошибок в коде.

В следующем фрагменте приведен код обработки события Click кнопки Выход.

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

{

ddlAuthors.Enabled = true;

txtlD.Enabled = false;

txtLName.Enabled = false;

txtFName.Enabled = false;

txtPhone.Enabled = false;

txtAddress.Enabled = false;

txtCity.Enabled = false;

txtState.Enabled = false;

txtZip.Enabled = false;

txtContract.Enabled = false;

btnCancel.Enabled = false;

btnSave.Enabled = false;

btnModify.Enabled = true;

btnError.Visible = false;

btnDone.Visible = false;

grpStatus.Visible = false;

}

Обработчики для событий click кнопок Новый, Удалить создать самостоятельно.

3. Требования к отчету

Отчет по лабораторной работе должен содержать:

·  титульный лист;

·  постановки задачи;

·  экранные формы;

·  листинги основных процедур.