【发布时间】:2011-12-17 05:16:18
【问题描述】:
我有一个表单,其中我有用户控件(用于显示带有日期时间的成员名称)和两个组合框(一个是 cbstatus 值,如(拒绝、接受、注销)和另一个组合框 cbperiod 和值如(今天,7 天) , 30天..) 我正在显示成员名称以及访问日期时间和注销日期时间,就像这样..)
通过使用以下查询
sql = @"SELECT member_Firstname, member_Lastname, member_Postcode,
visit_DateTime, visit_Status, visit_Logout_DateTime, visits.member_Id, visit_AlertMsg
FROM members,visits
WHERE members.member_Id = visits.member_Id
AND members.member_Active LIKE 'y%'";
这工作正常.....
我得到的值取决于这样的组合框值..
if (cbStatus.Text == "Accepts")
{
sql += " AND visits.visit_Status = 'accepted' ";
}
我还有两个这样的条件......
if (cbStatus.Text == "refusals")
{
sql += blahh blahh blahhhh
}
我正在获取选择这样的 cbperiod 组合框的值...
if (cbPeriod.Text == "Today")
{
string dtStartString = DateTime.Today.ToString(DataHelper.dateFormat);
sql += string.Format(" AND visits.visit_Date = '{0}'", dtStartString);
}
//here i am comparing the cbstatus value logout and cbperiod text with today to get the member details whose logout datetime is today
if (cbStatus.Text == "Logout" && cbPeriod.Text == "Today")
{
string dtStartString = DateTime.Today.ToString("yyyy-MM-dd");
sql += string.Format(" AND DATE(visits.visit_Logout_DateTime) = '{0}'", dtStartString);
}
我还有两个像这样的条件....对于 cbstatus 和 cbperiod 中的值
在这里我将我的值与用户控件绑定....
datatable dt1 = Helper.GetData(sql);
if (dt1 != null)
{
if (dt1.Rows.Count > 0)
{
foreach (DataRow row in dt1.Rows)
{
newItem = new EntryItem();// this is my usercontrol
if (cbStatus.Text != "Logout")
{
DateTime dtTemp = DateTime.Parse(row["visit_DateTime"].ToString()); // here I am showing the data when user not selected the cbstatus text as logout I mean (refusal,..)
but the below function overrides this data ....
if (cbPeriod.Text == "Today") newItem.lblTime.Text = dtTemp.ToString("HH':'mm':'ss");
else newItem.lblTime.Text = dtTemp.ToString("yyyy'-'MM'-'dd' - 'HH':'mm':'ss");
}
if (row["visit_Logout_DateTime"] != DBNull.Value)
{
DateTime dtlogout = DateTime.Parse(row["visit_Logout_DateTime"].ToString());
if (dtlogout != null)
{
if (cbStatus.Text == "Logout" && cbPeriod.Text == "Today")
{
newItem.lblTime.Text = dtlogout.ToString("HH':'mm':'ss");
newItem.lblName.Text = row["member_Firstname"].ToString() + " " + row["member_Lastname"].ToString();
newItem.lblAlertMessage.Text = row["visit_AlertMsg"].ToString();
}
else
newItem.lblTime.Text = dtlogout.ToString("yyyy'-'MM'-'dd' - 'HH':'mm':'ss");
newItem.lblName.Text = row["member_Firstname"].ToString() + " " + row["member_Lastname"].ToString();
newItem.lblAlertMessage.Text = row["visit_AlertMsg"].ToString();
}
}
newItem.lblName.Text = row["member_Firstname"].ToString() + " " + row["member_Lastname"].ToString();
newItem.lblAlertMessage.Text = row["visit_AlertMsg"].ToString();
当我选择cbstatus.text == logout 时,它会显示正确的数据以及注销日期时间的成员...
但是当我选择cbstatus.text == refusals ..它显示注销数据(有logoutdaatetime的成员)..这是错误的,它必须显示refusal members和visit_Datetime
我如何向会员显示两个数据有 logoutdatetime 和 visit datetime
注意:一个成员同时拥有 logoutdatetime 和 visitdatetime....
而我的数据是这样的……
firstname lastname postcode status visit_Logout_DateTime visit_datetime
------------- -------- --------- ------- --------------------- ----------------
rob peter hhd344h refused 2011-05-06 12:09:07 2011-05-06 08:09:34
peter chan hy78kjk refused 2011-09-08 12:09:08 2011-05-03 06:09:34
rock sam yudufg3746h refused 2011-08-08 09:08:45
rob peter hhd344h refused 2011-05-10 12:09:07 2011-05-10 08:09:34
【问题讨论】:
-
任何人都可以帮助解决这个问题......如果上述问题不清楚,请告诉我......
-
我会简化代码并利用存储过程,你有很多动态SQL。
-
但是,我不能在这里使用存储过程.....
标签: c# .net mysql windows winforms