如何使用 C# 中不同形式的查询删除列表项?
How to delete a list item with an query from a different form in c#?
我尝试从我的数据库中的列表 'Ship' 中删除一个列表项。
我使用 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更新数据库
正如 Sami 所说,您并没有告诉它需要删除什么。
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();
}
}
}
我尝试从我的数据库中的列表 'Ship' 中删除一个列表项。 我使用 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更新数据库
正如 Sami 所说,您并没有告诉它需要删除什么。
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();
}
}
}