2012-03-17 13 views
1

首先,我創建了一個集合,即「收藏列表」;並在一個函數的RSS項目包括鏈接描述標題是字符串和日期是Datetime變量,我試圖填補我的收藏列表像這樣 收藏列表;如何使用c中的數據集填充我的收藏列表

for (int i = 0; i < dt.Rows.Count; i++) 
      { 
       row = dt.Rows[i]; 
       list[i].Link = row[0].ToString();// 
       list[i].Description = row[1].ToString(); 
       list[i].Title = row[2].ToString(); 
      list[i].Date = DateTime.Parse(row[3].ToString()); 

      } 

由於它不是列表[i]下的變量,所以存在無法修改返回值的錯誤。

我該如何解決這個問題?謝謝

+0

什麼是你的錯誤信息? – 2012-03-17 17:41:43

回答

0

嘗試解析值轉換成日期時間:

for (int i = 0; i < dt.Rows.Count; i++) 
{ 
    row = dt.Rows[i]; 
    list[i].Link = row[0].ToString();// 
    list[i].Description = row[1].ToString(); 
    list[i].Title = row[2].ToString(); 
    list[i].Date = DateTime.Parse(row[3].ToString()); 
} 

我會小心的是,雖然,因爲行[3]的值可能不是一個有效日期(這是一些你可以肯定的? )

在這種情況下,你可能希望有一些防禦:

for (int i = 0; i < dt.Rows.Count; i++) 
{ 
    row = dt.Rows[i]; 
    list[i].Link = row[0].ToString();// 
    list[i].Description = row[1].ToString(); 
    list[i].Title = row[2].ToString(); 
    list[i].Date = ToDateTime(row[3].ToString()); 
} 

public static DateTime? ToDateTime(string value) 
{ 
    DateTime result; 

    if (DateTime.TryParse(value, out result)) 
    { 
     return result; 
    } 

    return null; 
} 

確保list.Date被聲明爲DateTime?。如果您調用DateTime.Parse(),如果行[3]不是有效日期,則使用此操作可避免發生異常。

+0

謝謝,我想我的DateTime問題已解決 – leventkalay92 2012-03-17 17:51:40

0
list[i].Date =Convert.ToDateTime(row[3]); 

試試這個。

0

不考慮DBNull.Value,你應該儘量行[3]轉換成一個DateTime

string toConvert = row[3].ToString(); 
DateTime result; 
if(DateTime.TryParse(toConvert, out result) == true) 
    list[i].Date = result; 
相關問題