using (SqlDataAdapter da = new SqlDataAdapter(cmdSchedule))
{
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables.Count > 0)
{
string ReturnDay1 = ds.Tables[0].Rows[0]["Day"].ToString();
string StartingTime1 = ds.Tables[0].Rows[0]["StartTime"].ToString();
string EndingTime1 = ds.Tables[0].Rows[0]["EndTime"].ToString();
string ReturnDay2 = ds.Tables[0].Rows[1]["Day"].ToString();
string StartingTime2 = ds.Tables[0].Rows[1]["StartTime"].ToString();
string EndingTime2 = ds.Tables[0].Rows[1]["EndTime"].ToString();
if (ReturnDay1.Trim().Equals("Monday"))
{
if (StartingTime1.Trim().Equals("10:00") && EndingTime1.Trim().Equals("12:00"))
{
btn1.BackColor = Color.Red;
}
if (ReturnDay2.Trim().Equals("Monday"))
{
if (StartingTime2.Trim().Equals("15:00") && EndingTime2.Trim().Equals("17:00"))
{
btn2.BackColor = Color.Red;
}
}
}
}
逐行检索记录并进行比较是效率低下的。如何使用循环方法循环并进行比较。感谢
答案 0 :(得分:0)
这应该可以解决问题:
using (SqlDataAdapter da = new SqlDataAdapter(cmdSchedule))
{
DataSet ds = new DataSet();
da.Fill(ds);
for (int i = 0; i < dt.Tables[0].Rows.Count; i++)
{
var row = dt.Tables[0].Rows[i];
string ReturnDay = row["Day"].ToString();
string StartingTime = row["StartTime"].ToString();
string EndingTime = row["EndTime"].ToString();
if (ReturnDay.Trim().Equals("Monday"))
{
if (StartingTime.Trim().Equals("10:00") &&
EndingTime.Trim().Equals("12:00"))
{
var btn = this.Controls.FindControl(
string.Format("btn{0}", i + 1)) as Button;
btn.BackColor = Color.Red;
}
}
}
}
这里的关键是在您的情况下通过for
循环遍历行,因为您设置了不同的按钮,其名称后缀为索引。