У меня есть проблема с данными.И мне нужно заменить код на более умный.
У меня есть таблица данных, и примеры значений выглядят так:
Столбцы: id, user_id, время начала, время окончания
Пример строки: 1, 5, 05.10.2009 08: 00: 00,05.10.2009 17: 00
мой псевдокод:
function something()
{
for(int i=0;i<datatable.Rows.Length;i++)
{
if(Someobject.variable.Equals(dt.Rows[i][user_id].ToString()))
{
if(Date.Compare(somevariable,dt.Rows[i][starttime].ToString())!=0)
{
//Do something
}
}
}
}
это что-то вроде этого.Таблица данных содержит более тысячи строк, и при загрузке страницы asp.net функции должны вызываться почти тысячу раз.
Так что мне нужно ее изменить.
Я подумал об использовании словаря.но кажется, что требуется только две переменные.Что вы можете мне предложить.
Редактировать:
Я пока не могу решить проблему.Вот соответствующий код.Заранее спасибо.
Защищено void RadScheduler_Randevu_TimeSlotCreated (отправитель объекта, Telerik.Web.UI.TimeSlotCreatedEventArgs e) {
for (int i = 0; i < calismaSaatleridt.Rows.Count; i++)
{
if (RadScheduler_Randevu.SelectedView.Equals(SchedulerViewType.DayView))
{
if (RadScheduler_Randevu.SelectedDate.ToShortDateString().Equals(Convert.ToDateTime(calismaSaatleridt.Rows[i]["calisma_baslangic"]).ToShortDateString()))
{
if (e.TimeSlot.Resource.Key.ToString().Equals(calismaSaatleridt.Rows[i]["hekim_id"].ToString()))
{
if (DateTime.Compare(e.TimeSlot.Start, Convert.ToDateTime(calismaSaatleridt.Rows[i]["calisma_baslangic"])) < 0 || DateTime.Compare(e.TimeSlot.End, Convert.ToDateTime(calismaSaatleridt.Rows[i]["calisma_bitis"])) > 0)
{
e.TimeSlot.CssClass = "Disabled";
}
}
}
}
}
}
Эта функция возвращаетнабор результатов.
private DataTable calismaSaatiGetir(string yonetici_id)
{
SqlConnection connection = new SqlConnection();
connection.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlCommand command = new SqlCommand();
command.CommandText = "select calisma_saati.id,kullanici.id as hekim_id,LEFT(CONVERT(VARCHAR,calisma_saati.tarih,104),10)+ ' ' +LEFT(CONVERT(VARCHAR,calisma_saati.baslangic_saati,108),5) AS calisma_baslangic,LEFT(CONVERT(VARCHAR,calisma_saati.tarih,104),10)+ ' '+LEFT(CONVERT(VARCHAR,calisma_saati.bitis_saati,108),5) AS calisma_bitis from calisma_saati JOIN kullanici ON kullanici.id=calisma_saati.kullanici_id WHERE yonetici_id='" + Session["yonetici"].ToString() + "' ";
command.Connection = connection;
connection.Open();
SqlDataAdapter da = new SqlDataAdapter(command.CommandText, connection);
DataSet ds = new DataSet();
da.Fill(ds, "calisma_saati");
calismaSaatleridt = ds.Tables["calisma_saati"];
connection.Close();
return calismaSaatleridt;
}