2014-03-24 4 views
2

У меня есть следующая проблема.Как получить доступ к содержимому DataRow?

У меня есть DataTable объект, представляющий один столбец таблицы, столбец с именем VulnerabilityReferenceId, что-то вроде этого:

VulnerabilityReferenceId 
167554 
167555 
167556 
167557 
167558 
167559 
167560 
167561 

Так что я хочу создать Еогеасп, что доступ к этим ряду и поставить значение в переменную

Я сделал:

foreach (DataRow row in _dt.Rows) 
{ 
    Debug.WriteLine("VulnerabilityReferenceId: " ); 
} 

Но что я могу сделать, чтобы получить доступ к значению текущей строки и поместить ее в переменную int?

ответ

4

Это может быть подход, который прочитал поле и преобразовать его к нужному типу данных. Это требует ссылки на DataSetExtension сборки из NET3.5, где вы могли бы начать, чтобы найти DataRowExtensions class

foreach (DataRow row in _dt.Rows) 
{ 
    int id = row.Field<int>("VulnerabilityReferenceId"); 
    ..... 
} 

Примечание: Я полагаю, что поле VulnerabilityReferenceId имеет целочисленный тип

1

Вы можете использовать имя столбца как индексатор, чтобы получить значение, как object

foreach (DataRow row in _dt.Rows) 
{ 
    int vulRefId=Convert.ToInt32(row["VulnerabilityReferenceId"]); 
    Debug.WriteLine("VulnerabilityReferenceId: " +vulRefId ); 
} 
+0

'_dt.Rows [rowindex] [columnname]'. Первым индексом является индекс строки, а не имя столбца. Возможно, вы хотите написать 'row [" VulnerabilityReferenceId "]' – Steve

0

Попробуйте ниже:

for(int i=0;i<_dt.Rows.Count;i++) 
{ 
    Debug.WriteLine("VulnerabilityReferenceId: "+dt.Rows[i][0].ToString()); 
} 
-1
foreach (DataRow row in _dt.Rows) 
{ 
    String stringVal = row["VulnerabilityReferenceId"].ToString(); 
    int myId = Convert.ToInt32(stringVal); 
} 
Смежные вопросы