Qual é a melhor maneira de verificar se uma Tabela de Dados contém um valor nulo?
Na maioria das vezes em nosso cenário, uma coluna terá todos os valores nulos.
(Esta tabela de dados é retornada por um aplicativo de terceiros - estamos tentando colocar uma valiação antes que nosso aplicativo processe a tabela de dados)
Respostas:
Tente comparar o valor da coluna com o
DBNull.Value
valor para filtrar e gerenciar valores nulos da maneira que achar adequada.foreach(DataRow row in table.Rows) { object value = row["ColumnName"]; if (value == DBNull.Value) // do something else // do something else }
Mais informações sobre a classe DBNull
Se você deseja verificar se existe um valor nulo na tabela, você pode usar este método:
public static bool HasNull(this DataTable table) { foreach (DataColumn column in table.Columns) { if (table.Rows.OfType<DataRow>().Any(r => r.IsNull(column))) return true; } return false; }
que permitirá que você escreva isto:
fonte
table.AsEnumerable()
vez detable.Rows.OfType<DataRow>()
foreach(DataRow row in dataTable.Rows) { if(row.IsNull("myColumn")) throw new Exception("Empty value!") }
fonte
Você pode executar um loop nas linhas e colunas, verificando se há nulos, controlando se há um nulo com um bool e, em seguida, verificá-lo após fazer o loop pela tabela e manipulá-lo.
//your DataTable, replace with table get code DataTable table = new DataTable(); bool tableHasNull = false; foreach (DataRow row in table.Rows) { foreach (DataColumn col in table.Columns) { //test for null here if (row[col] == DBNull.Value) { tableHasNull = true; } } } if (tableHasNull) { //handle null in table }
Você também pode sair do loop foreach com uma instrução break, por exemplo
//test for null here if (row[col] == DBNull.Value) { tableHasNull = true; break; }
Para salvar o looping pelo resto da tabela.
fonte
Eu vou fazer como ....
(!DBNull.Value.Equals(dataSet.Tables[6].Rows[0]["_id"]))
fonte
Você pode null / blank / space Etc value usando LinQ Use following Query
var BlankValueRows = (from dr1 in Dt.AsEnumerable() where dr1["Columnname"].ToString() == "" || dr1["Columnname"].ToString() == "" || dr1["Columnname"].ToString() == "" select Columnname);
Aqui, substitua Columnname pelo nome da coluna da tabela e "" seu item de pesquisa no código acima, procurando valor nulo.
fonte
DataTable dt = new DataTable(); foreach (DataRow dr in dt.Rows) { if (dr["Column_Name"] == DBNull.Value) { //Do something } else { //Do something } }
fonte