首页 > 解决方案 > 如何检查表格是否包含所选数字?

问题描述

我的数据库中有 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 是列表框的名称。

标签: c#sqldatatablelistboxprimary-key

解决方案


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

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();
}

推荐阅读