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

发布于 2024-09-11 15:06:20 字数 527 浏览 5 评论 0原文

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

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

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

UPDATE< /strong>

这是原因的屏幕截图:

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

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

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

I have a string which can be empty if its not empty it is containing a xml document. The problem is null values are allowed in this dataset column of DataType System.String.

Error Message:this.MetaData' threw an exception of type 'System.Data.StrongTypingException'

base {System.SystemException} = {"The value for column 'MyData' in table 'GMyTAbleName' is DBNull."}

UPDATE

here is a screenshot of the cause:

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

you see how it tries to convert NULL to a string which should be returned.

That code is from the DataSet.Designer.cs file, how could I change that behaviour? :S

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怎言笑 2024-09-18 15:06:21

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

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

Consider testing the column first using the IsNull method on the DataRow.

I've never did like DBNull. :)

柠檬色的秋千 2024-09-18 15:06:21

好吧,我成功了。我将在此处列出步骤:

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

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

2.) 现在 string.empty 不是有效的 xml 字符串,我在相应属性的 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;                                     
    }
}

ok I made it working. I will list the steps here:

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

choose this: (Empty) To have null values return as String.Empty.

2.) As we now a string.empty is not a valid xml-string I checked this in the getter of my appropriate property.

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;                                     
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文