2013-11-21 71 views
1
 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; 
         } 

        } 

       } 
      } 

检索行并对其进行比较效率低下。如何使用循环方法来循环并进行比较。谢谢循环数据并进行比较

+2

你想达到什么目的? – dbw

+0

使用循环函数循环数据库中的所有记录,并比较ReturnDay而不是逐行检索数据。 – Michael

回答

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循环在你的情况,因为你设置谁的名字为后缀的指数不同的按钮。

+0

感谢您解决和帮助。 – Michael

+0

@迈克尔,我很高兴我可以帮助! –