2015-02-19 3 views
0

У меня есть следующий:DataTable Конкретного столбец из строки

//a datatable with some rows and columns lets say 5x5 
var datatable = new DataTable(); 
var numberofrows = datatable.rows.count; 

for (int i = 0; i < numberofrows; i++) { 
//for each row, get the 3rd column 
var cell = datatable.rows[i].??? 
} 

как я получаю 3-й столбец для каждой строки?

ответ

1

на 3-й колонке

var cellValue = datatable.Rows[i][2]; 

лучше, если вы знаете имя столбца,

var cellValue = datatable.Rows[i]["name"]; 
+0

какой тип тип данных является ячейка? Мне нужно использовать это вместо «var», поэтому я могу получить внутреннее значение –

+0

@AbdulAhmad, это зависит от типа столбца. Когда вы создаете столбец (добавление столбца в datatable.Columns.Add (..)), вы получаете перегрузку типа указания. – Yogee

+0

я вижу, нормально, я посмотрю на него –

-2

Вы можете перебирать через DataTable и получить каждую строку, которую можно рассматривать как массив, так вы можете выбрать каждый элемент этой конкретной строки с помощью индекса (а также использовать имя столбца вместо индекса, то есть: row ["column3 name"]).

foreach(DataRow row in datatable) 
{ 
    Console.WriteLine(row[2]); 
} 
+0

спасибо, но я не хочу использовать цикл foreach, потому что хочу пропустить некоторые строки на основе индекса –

0

Если таблица содержит 2 столбца «Свойство» и «Значение». Содержание может быть вставлен следующим образом

table.Columns.Add("Property", typeof(string)); 
table.Columns.Add("Value", typeof(string));  

table.Rows.Add("P1", "abc"); 
table.Rows.Add("P2", "xyz"); 

Чтобы retrive содержимое определенного столбца

foreach (DataRow row in table.Rows) 
    { 
     if (row["Property"].ToString() == "P1") 
     { 
      var value = row["Value"].ToString(); 
      } 
    } 
1

мы можем прочитать конкретные значения столбцов с помощью так

foreach (DataTable table in ds.Tables) 
       { 
        if (table.TableName == "Table1") 
        { 

         for (int j = 0; j < table.Rows.Count; j++) 
         { 


           int a = Convert.ToInt32(table.Rows[j].ItemArray[3]); 
           int b = Convert.ToInt32(table.Rows[j].ItemArray[4]); 




         } 
        } 


       } 
Смежные вопросы