2017-05-03 111 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:所以这是一个字符串?编辑我的答案 –