我在数据类型XML的SQL Server表中有一列我需要读入我的c#应用程序并存储到对象中。列中数据的格式是
<call>
<attempted>
<enterdata/>
</attempted>
<completed>
<enterdata/>
<updatedate/>
</completed>
</call>
这个想法是,用户呼叫客户,之后必须填写报告。在指示他们是否到达客户(已完成)或未到达(已尝试)之后,应用程序将相应地解析XML并确定它必须在系统中进行哪些更新。
但是,我不知道在我的Call类中使用哪种数据类型来存储此信息,然后再解析它以查看需要进行哪些更新。我尝试使用XElement
,但收到错误说&#34;无法隐式转换类型&#39;对象&#39;到&#39; System.Xml.Linq.XElement&#39;。当我施放它时,我得到了类似的错误,但是对“弦乐器”说了些什么。相反,我相信。我希望得到一些关于如何处理这个问题的建议,从存储XML数据的数据类型到如何解析它。
答案 0 :(得分:0)
这是一个解决方案:
&#34;设置&#34;是保存在DB中的xml。
IDictionary<string, string> setting = new Dictionary<string, string>();
using (DbDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
object settingValue = reader["setting"];
if (settingValue != null)
{
try
{
// Test if the content can be parsed as XElement before contract deserialize
XElement xNode = XElement.Parse(settingValue.ToString());
if (xNode != null)
{
setting = (IDictionary<string, string>)XmlUtil.DataContractDeserialize(settingValue.ToString(), setting.GetType());
}
}
catch (XmlException)
{
}
}
}
}