这是一个主观的问题,但我希望我能找到帮助。
我正在学习如何将数据库中的两个表合并到一个单独的DataTable中。然后,我遇到了以下代码块。
DataTable mdt = new DataTable();
mdt.Columns.Add("products");
mdt.Columns.Add("price");
for (int i = 0; i < A.Rows.Count; i++)
{
DataRow dr = mdt.NewRow();
dr["product"] = A.Rows[i]["product"].ToString();
dr["price"] = A.Rows[i]["price"].ToString();
//A is a DataTable
mdt.Rows.Add(dr);
}
我可以理解数据正被添加到Datatable的行中。
这就是我所理解的:
DataTable的列产品由dr [“product”]赋值。如果我错了,请纠正我。但是A.Rows[i]["product"].ToString();
如何工作。
答案 0 :(得分:3)
这应该有所帮助:
A = DataTable
A.Rows = Collection of DataRows in A
A.Rows[i] = i-th row from collection
A.Rows[i]["product"] = Column "product" in row (return type of expression is object)
因此,当您执行dr["product"] = A.Rows[i]["product"].ToString();
时,您要将当前行的product
列的值从数据表A分配到新数据行中的product
列。同样适用于price
列。
答案 1 :(得分:1)
Rows[i]
表示赋值的索引。我的意思是第一个循环的值是0,第二个循环的值是1.因此,对于第一个循环,为了第一个循环,增加了产品和价格的值到索引为0的第一行。对于第二个循环,将产品和价格的值添加到索引为1的第二行。
对于第二部分即["product"].ToString()
,它只是将产品的值转换为字符串。
修改强>
由于A是已经填充的数据表。我们正在使用该语句,我们从集合中获取DataTables的第i行,将其转换为字符串并将其分配给列中的“product”列。数据行。
答案 2 :(得分:0)
[“product”]。ToString()获取具有列名产品的单元格的值,并将其转换为要分配给新行的字符串。