|
现在选座模块已经做完了,现在遇到的问题是无论座位是否售出,都可购票,希望达到的效果是,当座位售出时,点击订票按钮提示票已售出。数据库设计座位是给每个座位分别用1-30来表示,然后设计了一个state值来表示座位是否为空(1为售出。0为空)图片不知为何上传不了,座位表一共3列 第一列是filmid 电影编号(和电影信息表的filmid相关联),第二列是num 表示每个座位的数字(1-30)第三列是state 表示座位的装态(1和0) |
|
| 5分 |
不就是if判断吗
if不会用? |
| 10分 |
给我的订票按钮设置一个条件,当state=1时 提示“改座位已有用户
在点击的时候,根据位置编号取查找对应的状态,如果已经是1了,提示,这个还要什么帮助啊 if(bll.CheckState(12))
{
//这个座位还没卖
}
else
{
//这个座位已经被卖掉了
}
|
| 10分 |
不知道是不是楼主想的有点复杂了?我觉得可能是这样
if(判断给座位的state是否为0){进行售出操作}else{messagebox.show("该座位已经售出,请选择其他座位!");}
|
|
if我知道怎么判断,我现在这么写程序运行不对
string sql_1 = "select * from seats where filmid=""" + UserHelper.Id+ """";
dataAdapter = new SqlDataAdapter(sql_1, DBHelper.conn);
DataSet dataset_1 = new DataSet();
dataAdapter.Fill(dataset_1, "seats");
DataTable dt = dataset_1.Tables["seats"];
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
if (dr["state"].ToString() == "1")
{
foreach (Button b1 in groupBox1.Controls)
{
if (b1.Text == dr["num"].ToString())
{
//提示无法选座
}
else{
//打开}
|
|
| 15分 |
你需要加锁,因为可能是多线程的,后者会覆盖前者。
其次的逻辑自己解决吧。没什么难的了。 可以考虑行级锁 大体逻辑入下 传入座位ID 根据座位ID获取数据库座位的那一条数据。 然后在判断当前的状态 如果符合状态返回可购买,否则不可购买。 |