Столбец DataSet может быть NULL, но не преобразован в строку? - PullRequest
1 голос
/ 29 июля 2010

У меня есть строка, которая может быть пустой, если она не пустая, она содержит документ XML. Проблема в том, что в этом столбце набора данных DataType System.String допустимы нулевые значения.

Сообщение об ошибке: this.MetaData 'выдало исключение типа' System.Data.StrongTypingException '

base {System.SystemException} = {"Значением для столбца 'MyData' в таблице 'GMyTAbleName' является DBNull."}

UPDATE

Вот скриншот причины:

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

вы видите, как он пытается преобразовать NULL в строку, которая должна быть возвращена.

Этот код взят из файла DataSet.Designer.cs, как я могу изменить это поведение? : S

Ответы [ 2 ]

0 голосов
/ 30 июля 2010

хорошо, я заставил это работать. Я перечислю шаги здесь:

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

выберите это: (Пусто) Чтобы нулевые значения возвращались как String.Empty.

2.) Поскольку мы теперь string.empty не является допустимой xml-строкой, я проверил это в получателе моего соответствующего свойства.

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;                                     
    }
}
0 голосов
/ 29 июля 2010

Попробуйте сначала проверить столбец с помощью метода IsNull на DataRow.

Я никогда не делал, как DBNull. :)

...