2016-10-06 3 views
0

Здесь ab.ABNumber рассчитывается с 1-го ряда набора данных И dr["ABNumber"].ToString() рассчитывается с последней строки. Для этого мое состояние всегда несовместимо. Как я могу это сделать для соответствия моему состоянию.Как совместить строку DataSet в C#?

public bool EmailAuthorization(ABMaster ab) 
{ 
    string ids = string.Empty; 
    DataSet ds = new DataSet(); 
    ds= new ABMasterService().LoadAllMDPendingAuthorization(ab.ID); 

    foreach (DataRow dr in ds.Tables[0].Rows) 
    { 
     if (ab.ABNumber == dr["ABNumber"].ToString()) 
     { 
     if (ids.Length > 0) 
     { 
      ids += ","; 
     } 
     ids += ab.ABNumber; 
     } 
    } 
} 
+1

Мы не можем помочь, потому что мы не знаем, что 'ab.ABNumber' является и то, что' ABNumber '-column этой таблицы содержит. Возможно, есть невидимые персонажи или что-то в этом роде. Используйте отладчик. –

+0

Непонятно, что вы спрашиваете. Что такое 'ab.ABNumber'? В чем проблема? –

+0

ABNumber - это запись таблицы базы данных ABMaster, и мои данные ds генерируют две записи в ds из другой таблицы. Ожидание одной и той же базы данных и отношения с двумя идентификаторами таблицы ABMaster и ABID в ожидании. Мне нужно сопоставить запись в обеих таблицах. Но когда я начинаю цикл, он показывает две записи, и когда я делаю if (ab.ABNumber == dr ["ABNumber"]. ToString()). ab.ABNumber получить 1-й ряд данных и dr ["ABNumber"] получить последнюю строку. Для этого он выглядит несоответствующим. – user3510330

ответ

1

ab.ABNumber Если действительно должны быть строкой, вы должны сравнить эти строки с Equals

ab.ABNumber.Equals(dr["ABNumber"].ToString())