如何从string中对数据行进行类型转换

时间:2014-02-12 11:48:21

标签: c# asp.net

  

'无法将类型字符串隐式转换为数据行[]'。

是否可以将字符串类型存储到数据行[]?我需要将特定列的值存储在该特定数据行数组中。请给我一个答案。

DataRow[] drprocess = objds.Tables[0].Rows[i]["ProcessName"].ToString(); 

2 个答案:

答案 0 :(得分:1)

您已声明一个名为DataRow[]的{​​{1}}类型的变量,但尚未创建一个DataRows数组,可在其中放置任何值。相反,你试图告诉编译器你正在检索的字符串实际上是一个DataRow,它不是。

您可能想要创建DataRows数组,然后创建DataRow对象并将其分配到数组中。但是,我怀疑这实际上并不是你想要实现的目标。请注意,drProcess已经是DataRows的集合。如果需要,您可以自己编辑或使用此集合。

或者,如果您想要创建新的流程名称集合,可能最好创建objds.Tables[0].Rows,然后调用var processes = new List<string>()

这完全取决于你之后想要对这个过程名称集合做什么。

答案 1 :(得分:0)

首先,DataRow始终属于DataTable。这些新DataRow属于哪个表格?我会假设objds.Tables[0]

我还假设您有一个字符串列,并且您希望将其中的每个字段拆分为DataRow[],然后我们需要知道分隔符。

假设它是逗号:

DataRow[] drprocess = objds.Tables[0].Rows[i].Field<string>("ProcessName").Split(',')
    .Select(name => {
        DataRow row = objds.Tables[0].NewRow();
        row.SetField("ProcessName", name);
        return row;
    })
    .ToArray();