用C#.NET与SQL做的一个酒店管理系统,想用BUTTON颜色来直观反应酒店房间状态,代码该怎样写?

我在主页面用button1到button18代表18个房间,button的TEXT是18个房间编号(如r3008,r3009),想通过点击显示当前房态(button19)... 我在主页面用button1到button18代表18个房间,button的TEXT是18个房间编号(如r3008,r3009),想通过点击 显示当前房态(button19)刷新显示这18个button,红色代表房间住人,绿色代表空闲,如何让button 的backcolor能和数据库中的房间表的对应房间状态栏信息连接起来,button 的text=房间 的房号时,该房状态栏的状态为空闲则该BUTTON的颜色就显示为绿色……每按一次BUTTON19信息就刷新一次。

该数据库名为CTR ,要用的表名为 房间表(房间编号,楼层,房间类型,当前状态)

希望高手能帮忙,谢谢啦~~
我不太会写代码,希望高手帮忙写出完整的代码,我现在只写出了我会的部分。
private void button19_Click(object sender, EventArgs e)
{
string zt = " Select 当前状态 from 包间信息 where [包间号]='" + button.Text+ "'";

switch ()
{
case "消费中":
this.button1.BackColor = Color.Red;
break;
case "空闲":
this.button1.BackColor = Color.LightGreen;
break;
case "已预订":
this.button1.BackColor = Color.Yellow;
break;
default:
break;
}
展开
 我来答
百度网友c086be8
2011-05-20 · 超过10用户采纳过TA的回答
知道答主
回答量:17
采纳率:0%
帮助的人:26.4万
展开全部
做一个按钮到房间的对应关系,然后根据从数据库中取出来的状态改变按钮背景色即可
struct BtnRoom
{
public Button button;
public string value;
public bool state;

public BtnRoom(Button btn, string room)
{
button = btn;
value = room;
state = false;
}
}
BtnRoom[] btnroom = { new BtnRoom(this.Button0, "r3008"), new BtnRoom(Button1, "r3008"), new BtnRoom(Button2, "r3008"), new BtnRoom(Button3, "r3008"), new BtnRoom(Button4, "r3008"), new BtnRoom(Button5, "r3008") };

//以下替换成从数据库中取房间状态的语句,根据状态设置即可
for (int i = 0; i < 6; i++)
{
if (i % 2 == 0)
{
btnroom[i].state = true;
btnroom[i].button.BackColor = Color.Green;

}
}
追问
BtnRoom[] btnroom = { new BtnRoom(this.Button0, "r3008"), new BtnRoom(Button1, "r3008"), new BtnRoom(Button2, "r3008"), new BtnRoom(Button3, "r3008"), new BtnRoom(Button4, "r3008"), new BtnRoom(Button5, "r3008") };

这里 this 和 button0,button1……都说用不了,不知道为什么
追答
创建对应关系时,应该放在一个方法中,你可以自定义方法,或者放在page_load中,这样应该就有了
秦雨箩
2011-05-20 · TA获得超过201个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:132万
展开全部
挺有创意啊!
首先你要在房间表建一个bool字段,表示房间是否有人!
然后在BUTTON19下写查询语句,查询每个房间是否有人!在每条查询语句后用if语句判断,并在BUTTON编号上赋色!就行了 !18个BUTTON不用绑定数据库,只作显示功能
追问
帮忙写下代码行吗?我不会写代码
追答
只提供思路,具体代码你自己解决吧!
按照ailanjha的做法建一个对应关系,然后在button19的Click事件下写:

for (int i = 8; i < 26; i++)
{
string a= "r300";
string b;
b = i.ToString("#");
string fnumber = a + b;
string zt = " Select 当前状态 as h from 包间信息 where [包间号]='" + fnumber + "'";
BtnRoom(i - 8);
}
这只是个思路!仅供参考,如果不对,请见谅!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6eed2f8
2011-05-20 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3823万
展开全部
为什么不用listview呢,比这个方便多了,就像window资源管理一样,还可以切换多种模式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
450475281
2011-05-22 · TA获得超过115个赞
知道答主
回答量:276
采纳率:0%
帮助的人:149万
展开全部
加Q:36014015帮你搞定
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式