用C#编写一个winform程序,遇到问题卡住了在线急等,谢谢各位大神! 5
cmd=newSqlCommand("select*fromtb_RoomwhereRoomName='"+Rname+"'",conn);sdr=cmd.Execute...
cmd = new SqlCommand("select * from tb_Room where RoomName='" + Rname + "'", conn);
sdr = cmd.ExecuteReader();
我来描述一下我的想法,我做的是一个餐饮管理系统,我想实现假如是会员结账时就有9.5折,现在问题是我建立数据库查询对象之后 不知道怎么与数据表tb_Room中的GuestQX字段进行对比,如果GuestQX=="会员",就给打9.5折,反之如果是"非会员"则就是原价。我是新手不知道是不是要用sdr read(), 还是什么其他语句。我把代码补全点,帮我看看吧。
if (price == "")
{
lblprice.Text = "0";
btnJZ.Enabled = false;
}
else
{
cmd = new SqlCommand("select * from tb_Room where RoomName='" + Rname + "'", conn);
sdr = cmd.ExecuteReader();
string qx= sdr["GuestQX"].ToString().Trim();
if(qx=="会员")
/*cmd = new SqlCommand("select RoomBJF from tb_Room where RoomName='"+Rname+"'", conn);
bjf = cmd.ExecuteScalar().ToString();
if (bjf == "0")
{
btnJZ.Enabled = true;
lblprice.Text = price + "+"+bjf+"=" + Convert.ToDecimal(Convert.ToDouble(price)).ToString("C");
}
else
{
btnJZ.Enabled = true;
lblprice.Text = price + "+"+bjf+"=" + (Convert.ToDecimal(Convert.ToDouble(price) ) + Convert.ToDecimal(bjf)).ToString("C");
}
conn.Close();*/
}
}
注释掉的是原来的代码没有会员打折的功能,帮忙添加进去吧,教我怎么查询数据表的字段也行。 展开
sdr = cmd.ExecuteReader();
我来描述一下我的想法,我做的是一个餐饮管理系统,我想实现假如是会员结账时就有9.5折,现在问题是我建立数据库查询对象之后 不知道怎么与数据表tb_Room中的GuestQX字段进行对比,如果GuestQX=="会员",就给打9.5折,反之如果是"非会员"则就是原价。我是新手不知道是不是要用sdr read(), 还是什么其他语句。我把代码补全点,帮我看看吧。
if (price == "")
{
lblprice.Text = "0";
btnJZ.Enabled = false;
}
else
{
cmd = new SqlCommand("select * from tb_Room where RoomName='" + Rname + "'", conn);
sdr = cmd.ExecuteReader();
string qx= sdr["GuestQX"].ToString().Trim();
if(qx=="会员")
/*cmd = new SqlCommand("select RoomBJF from tb_Room where RoomName='"+Rname+"'", conn);
bjf = cmd.ExecuteScalar().ToString();
if (bjf == "0")
{
btnJZ.Enabled = true;
lblprice.Text = price + "+"+bjf+"=" + Convert.ToDecimal(Convert.ToDouble(price)).ToString("C");
}
else
{
btnJZ.Enabled = true;
lblprice.Text = price + "+"+bjf+"=" + (Convert.ToDecimal(Convert.ToDouble(price) ) + Convert.ToDecimal(bjf)).ToString("C");
}
conn.Close();*/
}
}
注释掉的是原来的代码没有会员打折的功能,帮忙添加进去吧,教我怎么查询数据表的字段也行。 展开
1个回答
展开全部
特别是针对循环或timer处理中需要在窗体控件显示数据时,因后台处理过度繁忙而出现没刷新或者假死现象时,可以使用
复制代码代码如下:
Application.DoEvents();
Application.DoEvents()的作用
复制代码代码如下:
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000; i++)
{
label1.Text = i.ToString();
Application.DoEvents();
}
}
测试了一下,没有Application.DoEvents()的时候,Label基本处于假死机状态,最后显示一个9999,加上后会数字变换正常显示。
从这个测验后DoEvents的功能,应该DoEvents就好比实现了进程的同步。在不加的时候,因为优先级的问题,程序会执行主进程的代码,再执行别代码,而加了以后就可以同步执行。
复制代码代码如下:
Application.DoEvents();
Application.DoEvents()的作用
复制代码代码如下:
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10000; i++)
{
label1.Text = i.ToString();
Application.DoEvents();
}
}
测试了一下,没有Application.DoEvents()的时候,Label基本处于假死机状态,最后显示一个9999,加上后会数字变换正常显示。
从这个测验后DoEvents的功能,应该DoEvents就好比实现了进程的同步。在不加的时候,因为优先级的问题,程序会执行主进程的代码,再执行别代码,而加了以后就可以同步执行。
追问
??
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询