【问题标题】:how to fill my collection list by using dataset in c#如何在 C# 中使用数据集填充我的收藏列表
【发布时间】:2012-04-02 21:05:09
【问题描述】:
首先我创建了一个集合,它是“集合列表;”并且在一个函数 RSS 项目中包括链接描述标题,它们是字符串和日期,它是日期时间变量,我试图像这样填写我的收藏列表
收藏清单;
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());
}
有一些错误是不能修改的,因为它不是list[i]下的变量。
我该如何解决这个问题?谢谢
【问题讨论】:
标签:
c#
collections
arraylist
dataset
【解决方案1】:
尝试将值解析为日期时间:
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());
}
我会在这里小心,因为 row[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(),则使用此方法可避免在 row[3] 不是有效日期时引发异常。
【解决方案2】:
list[i].Date =Convert.ToDateTime(row[3]);
试试这个。
【解决方案3】:
不考虑 DBNull.Value,你应该尝试在 DateTime 中转换 row[3]
string toConvert = row[3].ToString();
DateTime result;
if(DateTime.TryParse(toConvert, out result) == true)
list[i].Date = result;