C# 从数据集将空值导出为xml

C# 从数据集将空值导出为xml,c#,.net,xml-serialization,C#,.net,Xml Serialization,如果数据集中的字段中有空值并将其导出为xml,则会“删除”字段标记。。无论如何,为了避免这种情况,..空标记的含义与null不同,尤其是对于字符串。如果标记存在但为空,您将如何区别呢?将NULL视为一种状态,将其他所有内容视为一个值。因此,如果您想要一个空值,只需发送一个空字符串(单个空白)您必须使用一个属性来绘制您的方法,该属性告诉它留在那里。不在我的机器附近,所以不能给你实际的代码。但是看起来是这样的 [XMLElement(IsNullable = true)] myProperty {g

如果数据集中的字段中有空值并将其导出为xml,则会“删除”字段标记。。无论如何,为了避免这种情况,..

空标记的含义与
null
不同,尤其是对于字符串。如果标记存在但为空,您将如何区别呢?

将NULL视为一种状态,将其他所有内容视为一个值。因此,如果您想要一个空值,只需发送一个空字符串(单个空白)

您必须使用一个属性来绘制您的方法,该属性告诉它留在那里。不在我的机器附近,所以不能给你实际的代码。但是看起来是这样的

[XMLElement(IsNullable = true)]
myProperty {get;set;}
//尝试更改单元格的值。
foreach(dtPr.Rows中的数据行)
{
对于(int i=0;i
null或empty在本例中是相同的。-1:注意,他指的是数据集,因此没有属性可用于放置属性。
//Try changing values of cells.

foreach (DataRow row in dtPr.Rows)
{
    for (int i = 0; i < dtPr.Columns.Count; i++)
    {


    dtPr.Columns[i].ReadOnly = false;

        if (string.IsNullOrEmpty(row[i].ToString()))
        {
            if (dtPr.Columns[i].DataType == typeof(string))
                row[i] = string.Empty;
            else if (dtPr.Columns[i].DataType == typeof(int))
                row[i] = 0;
            else if (dtPr.Columns[i].DataType == typeof(DateTime))
                row[i] = new DateTime(1753, 1, 1);
        }
    }
}