Добрый день. Вопрос такой. Учу АДО
Не пойму как обновить и удалить строку в БД.
Уровень DAL:
SqlDataAdapter employeesDA = new SqlDataAdapter("SELECT * FROM Employees", connectionString);
SqlCommandBuilder employeesCB = new SqlCommandBuilder(employeesDA);
Я так понял что SqlCommandBuilder генерит все остальные команды.
internal bool SaveChanges(DataSet msDB)
{
bool flag = false;
....................
try
{
employeesDA.Update(msDB.Tables["Employees"]);
}
...................
}
Уровень UI.
Добавление строки выглядит так:
private void btn_add_Click(object sender, EventArgs e)
{
DataRow drNewEmlpoyees = myStoreDB.Tables["Employees"].NewRow();
try
{
drNewEmlpoyees["ID"] = Guid.NewGuid();
drNewEmlpoyees["FullName"] = txbx_fullName.Text;
drNewEmlpoyees["Post"] = txbx_post.Text;
drNewEmlpoyees["Address"] = txbx_address.Text;
drNewEmlpoyees["Phone"] = Int32.Parse(txbx_phone.Text);
drNewEmlpoyees["BirthDate"] = DateTime.Parse(dtp_employees.Value.ToString());
drNewEmlpoyees["Notes"] = txbx_notes.Text;
myStoreDB.Tables["Employees"].Rows.Add(drNewEmlpoyees);
........................
emloyeesBll.SaveChanges(myStoreDB);
}
...................
}
т.е. здесь я вижу, что с помощью Add
myStoreDB.Tables["Employees"].Rows.Add(drNewEmlpoyees);
в таблицу добавляется строка и через BLL, myStoreDB типа DataSet, компилятор понимает,
что надо добавить строку и вызывает INSERT ...
Дальше...
С вытягиванием данных тоже вопроса нет.
Уровень DAL:
employeesDA.Fill(myStoreDB, "Employees");
и дальше myStoreDB передаю на уровень UI.
1-й ?) А вот КАК ОБНОВИТЬ выбранную строку в таблице "Employees" в БД я не пойму.
Поясняю: на форме "Служащие" есть текстбоксы в которых данные привязаны к датагридвью-ду.
Я изменяю, к примеру текстбох "Name", дальше
private void btn_update_Click(object sender, EventArgs e)
{
DataGridViewSelectedRowCollection rows = dgv_emplAdm.SelectedRows;
DataRow drCur;
foreach (DataGridViewRow row in rows)
{
drCur = (row.DataBoundItem as DataRowView).Row;
drCur.BeginEdit();
drCur["Name"] = txbx_Name.Text;
drCur.EndEdit();
}
Изменил строку, а как теперь myStoreDB сказать какую сроку нужно обновить,
и как это сделать?
Кстакти, почемуто rows.count упорно возвращает NULL, хотя строки в dgv_emplAdm есть,
и первая строка выбрана изначально.
emloyeesBll.AddNewEmploees(myStoreDB);
}
2-й ?) Как удалить выбранную в dgv_employees строку.
Старался объяснить проблему внятно.
В общем знающие, нужна ваша помощь.