2012-03-27 2 views
0

Внутри таблицы, any1 знает, как выбрать указанную строку и взять данные Time в указанном столбце, а затем поместить данные в TimeSpan?Извлечь данные времени из таблицы и поместить их в TimeSpan

DataRow[] selectIDRow = RetailCamDataSet1.Tables["smBranchWorkingDayInfo"].Select("ID=" + ID); 
foreach (DataRow row in getTimeDifference) 
{ 
    TimeSpan startTime = new TimeSpan(); //Need to put the data into the bracket instead of using hard code 

    TimeSpan endTime = new TimeSpan(20, 00, 00); //Hard coded 
    TimeSpan timeDifference = new TimeSpan(); 

    timeDifference = endTime.Subtract(startTime); 

    double minutes = timeDifference.TotalMinutes; 

    normalCount = minutes/15; 
+0

Каким форматом являются данные вашего времени в указанном столбце? –

+0

час: минуты: второй hh: mm: ss – hakunabean

ответ

1

Вы попробовали TimeSpan.Parse()?

DataRow[] selectIDRow = RetailCamDataSet1.Tables["smBranchWorkingDayInfo"].Select("ID=" + ID); 
    foreach (DataRow row in getTimeDifference) 
    { 
     DateTime dateTime = DateTime.Parse(row["DateTimeColumn"].ToString()); 
     TimeSpan timeSpan = TimeSpan.Parse(dateTime.ToString("hh:mm:ss")); 
     ... //do whatever you want to do with timeSpan 
    } 
+0

Да, я использую TimeSpan.Parse(). Вот мой код, он работает! :) – hakunabean

+0

Thx для ур info, он может быть использован как ссылка в будущем тоже. – hakunabean

1

Если вы уверены, что текст колонки времени хорошо отформатирован, вы можете использовать TimeSpan.Parse()

TimeSpan startTime = TimeSpan.Parse(row["time"].ToString()); 
+0

ok thx для информации о ur. – hakunabean

0

Да, я с помощью TimeSpan.Parse(). Вот мой код, и он работает! :)

foreach (DataRow row in RetailCamDataSet1.Tables["smBranchWorkingDayInfo"].Select("ID=" + convertedBranchID)) 
       { 
        var sTime = DateTime.Parse(row["SunFromTime"].ToString()); 
        int sHour = sTime.Hour, 
         sMinute = sTime.Minute, 
         sSecond = sTime.Second; 

        var eTime = DateTime.Parse(row["SunToTime"].ToString()); 
        int eHour = eTime.Hour, 
         eMinute = eTime.Minute, 
         eSecond = eTime.Second; 

        TimeSpan startTime = new TimeSpan(sHour, sMinute, sSecond); 
        TimeSpan endTime = new TimeSpan(eHour, eMinute, eSecond); 
        TimeSpan timeDifference = new TimeSpan(); 

        timeDifference = endTime.Subtract(startTime); 

        double minutes = timeDifference.TotalMinutes; 

        normalCount = minutes/15; 
Смежные вопросы