2017-05-03 75 views
3

我正在查詢mySQL數據庫並將響應存儲在數據表中。我需要檢查的具體列,以驗證其是否空白或null.Below是我在做什麼在數據集C中尋找字段#

DataTable dataTab = new DataTable("ServiceOrderProtocol"); 

string strQuery = "select OrderID, ServiceOrder, ExternalID, Project_key, ProjectType from ServiceOrder;"; 

using (MySqlCommand cmd = new MySqlCommand(strQuery, conn)) 
{ 
using (MySqlDataAdapter sqlDa = new MySqlDataAdapter(cmd)) 
{ 
sqlDa.Fill(dataTab); 
return dataTab; 
}} 

現在我不知道如何檢查外部ID從存儲在dataTab查詢返回的字段爲空或空。

+0

一個表,通常保存多個行,你想知道,如果其中任何一個有外部'ExternalID'爲空或全部爲空? –

+0

[如何通過sql數據適配器類分別檢索列值?](http://stackoverflow.com/questions/10805578/how-to-retrieve-column-values-separately-through-sql-data-adapter -class) –

+0

@TimSchmelter是所有帶有ExternalId的行都爲空或空白 – xyz

回答

1

如果你想知道是否有在表中的行包含在該領域ExternalID一個空值:

bool anyNullExternalID = dataTab.AsEnumerable().Any(r => r.IsNull("ExternalID")); 

如果你想知道,如果一切都爲空:

bool allNullExternalID = dataTab.AsEnumerable().All(r => r.IsNull("ExternalID")); 

如果你想要的所有行是空:

IEnumerable<DataRow> allNullExternalIDRows = dataTab.AsEnumerable() 
    .Where(r => r.IsNull("ExternalID")); 

如果它不是一個int(如名字所暗示的),但string並且要包括null和一個空字符串,追加|| string.IsNullOrEmpty(r.Field<string>("ExternalID"))

+0

我可以擴展到檢查空白嗎 – xyz

+0

@xyz:所以這是一個字符串?編輯我的答案 –