将WriteElementString与数据库整数一起使用

时间:2014-05-30 15:29:58

标签: c# xml

我正在用C#更新用于制作RSS提要的XML创建类。 它包含以下代码:

private void BindUpcomingEvents(IQueryable<Event> eventList, FilterParams filterParams)
   {
      var pref = MarylandCalendar.Model.Helpers.Preferences.Preferences.Get();
      var events = eventList.ToList();
      .
      .
      .
      // items
      foreach (var item in events)
      {
         xfeed.WriteElementString("chair", item.chair);
         .
         .
         .

         //xfeed.WriteElementString("person_id", String.Format("{0}", item.PersonId);
         //xfeed.WriteElementString("person_id", ((int)item.PersonId).ToString());
         //xfeed.WriteElementString("person_id", item.PersonId.ToString());
         //xfeed.WriteElementString("person_id", Convert.ToInt16(item.PersonId).ToString());
         .
         .
         .
       }
    .
    .
    .
  }

数据库 nvarchar 字段,例如&#34; chair&#34; (见上文)在XML语句中写出没有问题。但我似乎无法编写包含 int 字段(如PersonId)的语句。您可以根据Stackoverflow上的其他帖子以及互联网上的其他位置查看我的尝试(已注释掉)。如果我注释掉所有提取 int 字段的WriteElementString行,则RSS源按预期工作。但除此之外,它失败了。

任何线索?

1 个答案:

答案 0 :(得分:0)

如果PersonId可以为空,则需要先检查null:

xfeed.WriteElementString("person_id", item.PersonId.HasValue 
                                    ? item.PersonId.Value.ToString() 
                                    : "null")   // or 0, or blank, or something