Как я могу удалить выбранную строку DataGridView из базы данных? - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть форма Windows Forms с DataGridView. DataGridView имеет DataGridViewButtonColumn, и у меня есть база данных (идентификатор с автоинкрементом).

Я могу удалить его из DataGridView.

private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e) {
   if (e.ColumnIndex == Delete.Index) {
      dgv.Rows.Remove(dgv.Rows[e.RowIndex]);
   }
}

Как я могу удалить его из базы данных?

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Вы можете использовать запрос SQL, чтобы удалить его из базы данных. Получить сетку просмотра выбранных элементов и выполнить запрос на удаление, например:

int id= this.dataGridView1.SelectedItems[0].Text;

con.Open();
cmd.Connection = con;
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@id", id);
cmd.CommandText = "delete from data where id=@id";
cmd.ExecuteNonQuery();

Я не знаю, какой метод вы используете, но вы можете удалить его с помощью LINQ следующим образом:

Product deleteProduct = northWind.Products.First(u => u.ProductID == id);

northWind.Products.DeleteOnSubmit(deleteProduct);
0 голосов
/ 04 апреля 2019

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

<asp:Button ID="btnCellDelete" runat="server" CommandArgument = "<%# Eval("DB_ID")%>" Text="Delete Row" />

Получить значение в бэкэнде:

var item = (Button)e.Row.DataItem;
var dbID  = item.CommandArgument.ToStrng();

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...