我有一张表,它列出了一家公司的营业时间,该表有四列:Id,工作,开始和完成。
Monday 1/1/1900 8:00:00 AM 1/1/1900 5:00:00 PM
Tuesday 1/1/1900 8:00:00 AM 1/1/1900 5:00:00 PM
Wednesday 1/1/1900 8:00:00 AM 1/1/1900 5:00:00 PM
Thursday 1/1/1900 8:00:00 AM 1/1/1900 5:00:00 PM
Friday 1/1/1900 8:00:00 AM 1/1/1900 3:00:00 PM
Saturday 1/1/1900 12:00:00 AM 1/1/1900 12:00:00 AM
Sunday 1/1/1900 12:00:00 AM 1/1/1900 12:00:00 AM
我使用此查询在gridview表中显示了开放时间,并且工作正常。我得到一张周一至周五显示的表格,以及开放和关闭的时间。
select * from Schedule where [Commencing] != [Finishing];
然后我创建了一个名为Scheduling的类。
public class Scheduling
{
public int Id { get; set; }
public string Working { get; set; }
public Scheduling(int Id, string Working)
{
this.Id = Id;
this.Working = Working;
}
}
并如下更新我的ConnectionClass:
public static ArrayList GetCloseSchedule(string Id)
{
ArrayList list = new ArrayList();
string query = string.Format("select * from Schedule where [Commencing] = [Finishing]", Id);
try
{
conn.Open();
command.CommandText = query;
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
int id = reader.GetInt32(0);
string Working = reader.GetString(1);
Scheduling schedules = new Scheduling(id, Working);
list.Add(schedules);
}
}
finally
{
conn.Close();
}
return list;
}
然后将其保存在default.aspx.cs文件中。
str = "select * from Schedule where [Commencing] = [Finishing]";
com = new SqlCommand(str, con);
ArrayList Scheduling = ConnectionClass.GetCloseSchedule(lblMsgO.Text);
foreach (Scheduling schedules in Scheduling)
{
sb.Append(string.Format(@"{0}<br />",
schedules.Working));
lblMsgO.Text = sb.ToString();
sb.Clear();
reader.Close();
con.Close();
}
这是一个非常简单的查询,我已经成功完成了其中的几个查询,因此我不确定为什么这个查询无法正常工作。即使我在数据库中测试SQL查询时,两行都出现,它仅显示星期日,而跳过星期六。
答案 0 :(得分:1)
在您的default.aspx.cs
中,您每次循环都覆盖lblMsg0
中的值。您应该退出对label
的写操作,并在循环之外清除StringBuilder
(如果您在每个时间清除StringBuilder
值,那么您将失去使用StringBuilder
的意义:>
str = "select * from Schedule where [Commencing] = [Finishing]";
com = new SqlCommand(str, con);
ArrayList Scheduling = ConnectionClass.GetCloseSchedule(lblMsgO.Text);
foreach (Scheduling schedules in Scheduling)
{
sb.Append(string.Format(@"{0}<br />",
schedules.Working));
}
lblMsgO.Text = sb.ToString();
sb.Clear();
reader.Close();
con.Close();
此外,对于连接,您应该使用using
块来创建和处置连接,而不要自己关闭。