2015-04-29 2 views
0

В DataTable (dt) хранятся полученные значения carID и поэтому он хранится как 3 строки в DataTable, у меня также есть другой DataTable, называемый dt2, который также хранит carID и делает, я пытаюсь Переберите каждой строки в DT, чтобы увидеть, если любой carID хранится в ДТ существует в любой из строк в dt2, вот то, что я до сих пор:Проверка значения в строке столбца foreach

DataTable dt = w.getUserCars(userID); 

foreach (DataRow dr in dt.Rows) 
{ 
    string carID = dr["carID"].ToString(); 

} 

Как мне это сделать?

ответ

0

Вы должны быть в состоянии достичь этого, используя метод DataTable.Select(). Ты на правильном пути. Вам просто нужно добавить метод, чтобы найти (s) в dt2.

DataTable dt = w.getUserCars(userID); 
DataRow[] foundRows; 

foreach (DataRow dr in dt.Rows) 
{ 
    string carID = dr["carID"].ToString(); 

    foundRows = dt2.Select("carID = " + carID); 
    // do stuff here with foundRows 

    foreach (DataRow r in foundRows) 
    { 
    r.Delete(); 
    } 
} 
+0

Невозможно ли выполнить инструкцию IF, чтобы проверить, существует ли какой-либо из carID в d1 в dt2? – SassyGuy

+0

'if (foundRows.Count> 0)' даст вам необходимый результат. Или вы можете использовать LINQ, как предлагают некоторые из других ответов. –

+0

Ну, мне нужно специально получить строку, чтобы я мог ее удалить. – SassyGuy

0

Вы спрашиваете, как это сделать?

if(dr["carId"] != null) 
    carId = dr["carId"].ToString(); 

Я не уверен, вы можете немного уточнить свое намерение?

+0

Я в основном хочу сделать цикл foreach для каждой строки в dt1 проверить, существует ли carID в любой из строк в dt2, если он удаляет строку из dt1 – SassyGuy