我正在尝试将字符串数组中的值复制到DataRow
,它会引发错误:
无法隐式转换为字符串[]
代码:
DataRow dr = null;
ddcontent[i] = strfinalstartweek[i] + " - " + strfinalendweek[i] + "-- $" + openingbid;
// ddcontent is the string array
for (int i = 0; i < 12; i++)
{
dr.ItemArray = ddcontent[i];
ListItem item = new ListItem();
item.Text = NullHandler.NullHandlerForString(dr["OpeningBid"], string.Empty);
ddweek.Items.Add(item);
}
你们认为这里有什么不对......尝试了很多方法。
提前致谢!!
答案 0 :(得分:2)
dr.ItemArray = ddcontent[i];
ItemArray
属于object[]
类型,因此该行无效。 string
无法转换为object
的数组。但是,基于错误的文本,我想知道代码中是否存在另一种类型不匹配。你能说明哪一行包含错误吗?
答案 1 :(得分:0)
ddcontent是一个字符串数组(数据行)?如果要将每一行切成适合数据行,则必须使用string.Split method
答案 2 :(得分:0)
根据提供的信息,似乎ddcontent [i]是一个字符串,并且您正在尝试将其分配给属性 - ItemArray - 它需要一个数组。要解决此问题,您需要:
将此行移到循环外部,并将ddcontent数组直接指定给ItemArray。但请注意,您的ddcontent必须将相同数量的项目作为DataRow中的列。
dr.ItemArray = ddcontent;
for (int i = 0; i < 12; i++)
{
ListItem item = new ListItem();
item.Text = NullHandler.NullHandlerForString(dr["OpeningBid"], string.Empty);
ddweek.Items.Add(item);
}
或者在循环中使用Item indexer
分配项目 for (int i = 0; i < 12; i++)
{
dr.Item[i] = ddcontent[i];
ListItem item = new ListItem();
item.Text = NullHandler.NullHandlerForString(dr["OpeningBid"], string.Empty);
ddweek.Items.Add(item);
}
另外,我假设您在DataRow dr = null之后的代码中的某处创建了一个新的DataRow实例,并且在使用dr之前,即在某处有这样的行:
dr = dt.NewRow();
其中dt
是您的数据表。