循环数据并进行比较

时间:2013-11-21 10:07:25

标签: c# asp.net sql-server

        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;
                        }

                    }

                }
           }

逐行检索记录并进行比较是效率低下的。如何使用循环方法循环并进行比较。感谢

1 个答案:

答案 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循环遍历行,因为您设置了不同的按钮,其名称后缀为索引。