apa cara terbaik untuk memeriksa apakah Tabel Data memiliki nilai null di dalamnya?
Sebagian besar waktu dalam skenario kami, satu kolom akan memiliki semua nilai nol.
(Data-data ini dikembalikan oleh aplikasi pihak ketiga - kami mencoba untuk menempatkan pembenaran sebelum aplikasi kami memproses tabel data)
Jawaban:
Coba bandingkan nilai kolom dengan
DBNull.Value
nilai untuk memfilter dan mengelola nilai null dengan cara apa pun yang Anda inginkan.foreach(DataRow row in table.Rows) { object value = row["ColumnName"]; if (value == DBNull.Value) // do something else // do something else }
Informasi lebih lanjut tentang kelas DBNull
Jika Anda ingin memeriksa apakah ada nilai null di tabel, Anda dapat menggunakan metode ini:
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; }
yang memungkinkan Anda menulis ini:
sumber
table.AsEnumerable()
sebagai penggantitable.Rows.OfType<DataRow>()
foreach(DataRow row in dataTable.Rows) { if(row.IsNull("myColumn")) throw new Exception("Empty value!") }
sumber
Anda dapat melakukan loop melempar baris dan kolom, memeriksa null, melacak apakah ada null dengan bool, lalu memeriksanya setelah melakukan perulangan melalui tabel dan menanganinya.
//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 }
Anda juga bisa keluar dari loop foreach dengan pernyataan break misalnya
//test for null here if (row[col] == DBNull.Value) { tableHasNull = true; break; }
Untuk menghemat perulangan melalui sisa tabel.
sumber
Saya akan melakukan seperti ....
(!DBNull.Value.Equals(dataSet.Tables[6].Rows[0]["_id"]))
sumber
Anda dapat null / blank / spasi nilai Etc menggunakan LinQ Gunakan Kueri Mengikuti
var BlankValueRows = (from dr1 in Dt.AsEnumerable() where dr1["Columnname"].ToString() == "" || dr1["Columnname"].ToString() == "" || dr1["Columnname"].ToString() == "" select Columnname);
Berikut Ganti columnName dengan nama kolom tabel dan "" item yang Anda cari dalam kode di atas kita melihat nilai null.
sumber
DataTable dt = new DataTable(); foreach (DataRow dr in dt.Rows) { if (dr["Column_Name"] == DBNull.Value) { //Do something } else { //Do something } }
sumber