Как удалить элемент списка с запросом из другой формы в C #? - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь удалить элемент списка из моего списка «Корабль», который находится в моей базе данных.Я использую 2 класса, чтобы разделить мои SQL-запросы (ShipDB.cs для моих запросов, Ship для моих свойств Ship).Я хочу использовать кнопку удаления в моей форме, чтобы удалить выбранную строку в моей базе данных.Кнопка не удаляет строку, и при нажатии кнопки удаления не упоминалось об ошибке.

Здесь, в ShipDb.cs:

public void Delete()
        {
            using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(connectionString))
            {

                connection.Open();
                Ship ship = new Ship();
                SqlCommand commandDelete = new SqlCommand("DELETE FROM Ship WHERE id = " + ship.Id, connection);
                commandDelete.ExecuteNonQuery();
            }
        }

Здесь, в Form1.cs:

private void Button3_Click(object sender, EventArgs e)
        {   

             using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(connectionString))
                {


                if (dataGridViewShips.SelectedRows.Count == 1)
                {

                    Ship ship = (Ship)dataGridViewShips.SelectedRows[0].DataBoundItem;
                    db.Delete();
                    dataGridViewShips.DataSource = db.GetAll();

                }
            }

        }

Я использую db.GetAll для обновления базы данных

1 Ответ

1 голос
/ 30 июня 2019

Как сказал Сами, вы не говорите, что нужно удалить.

public void Delete(Ship ship)
{
    using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(connectionString))
    {
        connection.Open();
        SqlCommand commandDelete = new SqlCommand("DELETE FROM Ship WHERE id = " + ship.Id, connection);
        commandDelete.ExecuteNonQuery();
     }
}
private void Button3_Click(object sender, EventArgs e)
{   
    using (System.Data.SqlClient.SqlConnection connection = new System.Data.SqlClient.SqlConnection(connectionString))
    {
        if (dataGridViewShips.SelectedRows.Count == 1)
        {
            Ship ship = (Ship)dataGridViewShips.SelectedRows[0].DataBoundItem;
            db.Delete(ship);
            dataGridViewShips.DataSource = db.GetAll();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...