我正在对DataTables行的所有列进行foreach。我想从特定列中获取数据,但无法弄清楚如何执行此操作。见代码。
DataTable dt = mHandler.GetRegistrtationProgress(customer);
int column = 1;
foreach (DataColumn dc in dt.Columns)
{
string hutt = dc.ToString();
if (column == 11)
{
if (hutt.Equals("1"))
{
addSpecificPicture();
}
}
else
{
if (hutt.Equals("1"))
{
addPicture(column);
}
}
column++;
}
当我运行此代码时,我只在列上获得名称,但必须有一个好的方法来获取值?或者不是?
答案 0 :(得分:4)
不清楚您要实现的目标,但如果您想为每列检索唯一一行的值,则必须使用dc.ColumnName属性
DataTable dt = mHandler.GetRegistrtationProgress(customer);
foreach (DataColumn dc in dt.Columns)
{
string hutt = dt.Rows[0][dc.ColumnName].ToString();
....
当然,你可以使用索引器
简单地遍历行的列DataRow row = dt.Rows[0];
for(int i = 0; i < dt.Columns.Count; i++)
{
string hutt = row[i].ToString();
DataRow对象中还有属性ItemArray的选项,其中数组的每个元素都包含相应的值
DataRow row = dt.Rows[0];
for(int i = 0; i < row.ItemArray.Length; i++)
{
string hutt = row.ItemArray[i].ToString();
....
答案 1 :(得分:1)
你必须首先检查行,然后是列。
foreach (DataRow dr in dt.Rows) {
foreach(DataColumn dc in dt.Columns) {
string hutt = dr[dc].ToString()
}
}
或者像Steve回答的那样,如果你只有一排。
您还可以查看here