DataSet列可以为NULL但不能转换为字符串?

时间:2010-07-29 16:02:01

标签: xml string null dataset

我有一个字符串,如果它不为空,则可以为空,它包含一个xml文档。问题是DataType System.String的此数据集列中允许空值。

错误消息:this.MetaData'引发了类型'System.Data.StrongTypingException'的异常

base {System.SystemException} = {“表'GMyTAbleName'中列'MyData'的值为DBNull。”}

更新

这是原因的截图:

http://666kb.com/i/bld3eelnaicsgb9tv.png

你看到它如何尝试将NULL转换为应该返回的字符串。

该代码来自DataSet.Designer.cs文件,我该如何更改该行为? :S

2 个答案:

答案 0 :(得分:0)

首先使用IsNull上的DataRow方法测试列。

我从来没有像DBNull那样做过。 :)

答案 1 :(得分:0)

好的,我让它工作了。我将列出这里的步骤:

1。)http://msdn.microsoft.com/en-us/library/ya91ataz(vs.71).aspx

选择此项:(空)将null值作为String.Empty返回。

2。)因为我们现在的string.empty不是一个有效的xml-string,所以我在适当的属性的getter中检查了它。

private XmlDocument XMLMyData
 {
    get
    {
        XmlDocument doc = new XmlDocument();    

        if (this.MyData.Trim().Length > 0) 
            doc.LoadXml(this.MyData); // return xml-string in the xml document
        else if (String.IsNullOrEmpty(this.MyData)) 
            return doc;             // return empty xml document

        return doc;                                     
    }
}