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. Требования к отчету
Отчет по лабораторной работе должен содержать:
· титульный лист;
· постановки задачи;
· экранные формы;
· листинги основных процедур.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.