我有一种情况,我必须为客户分配房间号码,并从列表中删除分配的房间号码。
我想我会通过搜索数据库表来完成。如果程序在数据库中找到任何已分配的房间号,则会从组合框中删除它。
我正在使用此代码:
con.Open();
string selectSQL = "SELECT Room_Number FROM Reservation WHERE Reservation_ID > 0";
SqlCommand cmd = new SqlCommand(selectSQL, con);
SqlDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
string RoomNumber = rd.GetString(0);
foreach (string NumberOfRoom in RoomNumber)
{
if (NumberOfRoom == cbRoomNumber.Text)
{
cbRoomNumber.
}
}
}
rd.Close();
con.Close();
但我不知道接下来该做什么。
请提供任何指导。
答案 0 :(得分:0)
不要将DB查询逻辑与外部发生的任何事情混合在一起。你真正需要的是某种RoomRepository
,你可以做roomRepo.IsFree(any_parameter_goes_here)
。所以:
if (roomRepo.IsFree(...)) { }
为您提供了一种很好的方法来改变给定点的执行,而无需将SQL硬编码到方法实现中。
我不太确定我的答案是你所寻求的,但这对于更清洁的解决方案来说无疑是一个很好的起点。
答案 1 :(得分:0)
我认为你打算这样做
if (NumberOfRoom == cbRoomNumber.Text)
{
cbRoomNumber.Items.Remove(NumberOfRoom)
}
答案 2 :(得分:0)
谢谢大家。我制作了逻辑。 在这里。
con.Open();
string selectSQLR = "SELECT Room_Number FROM Reservation where Reservation_ID > 0";
SqlCommand cmdR = new SqlCommand(selectSQLR, con);
SqlDataReader rdR;
rdR = cmdR.ExecuteReader();
while (rdR.Read())
{
string RoomNumber = rdR.GetString(0);
cbRoomNumber.Items.Remove(RoomNumber);
}
rdR.Close();
con.Close();