我有一个数据集ds和一个ArrayList新路径列表我希望将ds添加(赋值给新路径) 怎么可能。
public List<ArrayList> newpath
{
set { ViewState["newpath"] = value; }
get
{
if (ViewState["newpath"] == null)
return new List<ArrayList>();
else
return (List<ArrayList>)ViewState["newpath"];
}
}
我正在尝试
foreach (DataRow dataRow in Ftb.Rows)//Ftb is datatable
{
newpath.Add(dataRow);//newpath is List<ArrayList>
}
和
foreach (DataRow dRow in ds.Tables[0].Rows)
{
newpath.Add(dRow);
}
如果我按照上述方式做,那么我收到错误 “'System.Collections.Generic.List.Add(System.Collections.ArrayList)'的最佳重载方法匹配'有一些无效的参数”
如果在某种程度上请帮帮我..怎么做
答案 0 :(得分:2)
我假设您希望newpath
中的每个项目都包含每行的列值?
如果是这样,请改为使用此类代码:
foreach (DataRow dataRow in Ftb.Rows)//Ftb is datatable
{
ArrayList values = new ArrayList();
foreach (object value in dataRow.ItemArray)
values.Add(value);
newpath.Add(values);
}
答案 1 :(得分:0)
从您发布的代码中看起来好像您的newpath
变量是ArrayLists列表。因此,当您尝试添加dRow
DataRow
时,您会收到错误,因为它不是ArrayList
。
如果您想添加DataRows,我认为newpath
应该是DataRow
的列表。如果你想用DataRow中的数据填充ArrayList,你需要这样的东西 -
foreach (DataRow dataRow in Ftb.Rows)//Ftb is datatable
{
ArrayList myAL = new ArrayList();
myAL.Add(dataRow["your_column_name"]);
//add fields from DataRow to array list using your required logic
newpath.Add(myAL);
}
答案 2 :(得分:0)
从
更改新路径List<ArrayList>
到
List<DataRow>
答案 3 :(得分:0)
我修改了@Shadow向导代码,现在工作正常
List<ArrayList> newval = new List<ArrayList>();
foreach (DataRow dRow in ds.Tables[0].Rows)
{
ArrayList values = new ArrayList();
foreach (object value in dRow.ItemArray)
values.Add(value);
newval.Add(values);
}
newpath = newval;