如何检查表中是否包含所选数字?

时间:2018-06-04 19:36:54

标签: c# sql datatable listbox id

我的数据库中有2个表。在我的应用程序中,我可以选择一条记录(客户)并将其链接到订单。我也可以选择删除客户,但是当我删除带有订单链接的客户时,它会崩溃。如何检查订单表中列表框中所选项目的ID是否存在?我希望它显示错误消息框。

到目前为止,这是我的代码:

reservering deResv = new reservering();

var item = (chalet)lbHuis.SelectedItem;

if (deResv.HuisId == item.Id)
        {
            MessageBox.Show("Verwijder eerst de reserveringen van dit huis.");
        }
        else
        {

            var delItem = from chalet in db.chalets
                          where chalet.Id == item.Id
                          select chalet;


            db.chalets.DeleteOnSubmit(item);
            db.SubmitChanges();
        }

reservering是订单表的名称。

chalet是(在本例中)属性表的名称。这与客户表的行为相同。

lbHuis是列表框的名称。

1 个答案:

答案 0 :(得分:0)

在尝试删除之前,我会查询您存储订购商品的表格,以便显示您想要的错误消息。我过去使用过的方法如下所示:

int foundID = -1;
using (SqlConnection conn = new SqlConnection("<your connection string>")) 
{
    conn.Open();
    SqlCommand cmd = new SqlCommand("SELECT id FROM reserving WHERE id=@orderID;", conn);
    cmd.Parameters.AddWithValue("@orderID", item.Id);
    using (SqlDataReader reader = cmd.ExecuteReader())
    {
        if (reader.Read())
        {
            foundID = reader["id"];
        }
    }
    conn.Close();
}