DataTable项目数组未分配

时间:2012-02-11 09:23:21

标签: c# wpf datatable

我正在将XML文件读入数据集,然后添加新列,然后为该列中的每一行分配值。

我的程序创建了新列,我可以看到它具有BitmapImage数据类型,方法是在调试屏幕运行时查看它,并使用消息框toString其数据类型。

但是当我尝试将某些内容分配给该行的列时,它仍然是“{}”,当我尝试使用它时,它会出现错误“无法将类型DBNull强制转换为BitmapImage”;

ItemDS = new DataSet();
ItemDS.ReadXml(homeFolder + @"Items.xml", XmlReadMode.InferSchema);
ItemDS.Tables[0].Columns.Add("pic", typeof(BitmapImage));
MessageBox.Show(ItemDS.Tables[0].Columns[5].DataType.ToString());
foreach (DataRow theRow in ItemDS.Tables[0].Rows)
{
    try
    {
        theRow.ItemArray[5] = (SquareImageFromFile(NewDeployFolder + @"assets\images\items\" + theRow.ItemArray[3].ToString(), 120));
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }
    combItem.Items.Add(theRow.ItemArray[0]);
}

当我运行赋值行时,没有出现错误,但是在运行该行之后,item数组没有任何反应。

1 个答案:

答案 0 :(得分:1)

我没有多使用DataTable,但我希望ItemArray能够创建数据的副本,而不是返回“实时”数组DataRow曲目。我真的没想到要工作。尝试通过索引器设置值:

theRow[5] = (SquareImageFromFile(NewDeployFolder + @"assets\images\items\" + 
                                 theRow[3].ToString(), 120));

ItemArray实际上是为了批量获取或设置值,而不是单个值。