【问题标题】: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;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-07
        • 1970-01-01
        • 2016-05-24
        • 1970-01-01
        • 1970-01-01
        • 2021-06-01
        • 1970-01-01
        • 2014-01-25
        相关资源
        最近更新 更多