我需要逐个添加行。以下代码仅添加当前行,如何在现有行之上添加行?
DataTable dt = new .DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Property", typeof(string));
DataRow row = dt.NewRow();
foreach (Object form in Obj)
{
string str1 = "hi";
string str2 = "hey";
row["Name"] = str1;
row["Property"] = str2;
dt.Rows.Add(row);
}
真的很感激任何建议吗?
更新1:
我的实际代码
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Property", typeof(string));
if (crobj.SourceName.StartsWith("{@"))
{
foreach (CRObject crform in lstObj)
{
if (crform.FormulaForm == crobj.SourceName)
{
System.Data.DataRow newRow = dt.NewRow();
newRow["Name"] = "hi";
newRow["Property"] = "hey";
dt.Rows.Add(newRow);
}
}
}
答案 0 :(得分:0)
小变化:
DataTable dt = new .DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Property", typeof(string));
foreach (Object form in Obj)
{
DataRow row = dt.NewRow(); <<<------------
string str1 = "hi";
string str2 = "hey";
row["Name"] = str1;
row["Property"] = str2;
dt.Rows.Add(row);
}
通过在循环内生成一个新行,它被视为一个新行而不是同一个行。
编辑:如果这不起作用,那么Obj集合可能不包含值。试试这个来测试:
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Property", typeof(string));
for (int i=0; i<5; i++)
{
DataRow row = dt.NewRow();
string str1 = "hi";
string str2 = "hey";
row["Name"] = str1;
row["Property"] = str2;
dt.Rows.Add(row);
}
有了这个,结果数据表包含5行。
答案 1 :(得分:0)
您只有一个row
(DataRow
)对象可供您重新编辑。在循环范围内声明一个新的:
foreach (Object form in Obj)
{
DataRow row = dt.NewRow();
//...
dt.Rows.Add(row);
}