2014-11-06 89 views
0

這是一個相當簡單的問題,但我不確定如何去做。我正在對數據庫進行查詢,然後將拉入的值插入到文本框中。然而,查詢可能會返回空值,這是我的問題。如果查詢返回null,那麼文本框應顯示19.我不確定如何檢查返回的數據以確定是否返回null,以便可以將19插入到文本框中。這裏是我的代碼(它的工作原理把返回的值轉換爲文本框的缺失空支票/加19)將數據加載到文本框中

using (test1 ds = new test1()) 
{ 
    DataTable dt = ds.dataset.Tables[0]; 
    List<string> coolList = new List<string>(); 

    foreach (DataRow row in dt.Rows) 
    { 
     coolList.Add(row[0].ToString()); 
    } 

    textBox7.Text = string.Join(" ", coolList); 
} 
+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2014-11-06 14:50:33

+0

謝謝,還不知道所有的規則。 – Himarm 2014-11-06 14:52:27

回答

2

最好不要使用空。簡單寫入您的SQL:SELECT IsNull(YourColumn, 19) as YourColumn FROM WhatEver。比你直接在sql中解決你的問題。

+0

我的SQL是有點搖搖晃晃,例如,如果我的選擇是,選擇貓從狗,我會改變它選擇IsNull(貓,19)作爲貓從狗? – Himarm 2014-11-06 14:55:38

+0

這取決於Cat的數據類型。如果cat是一個varchar,你應該使用:SELECT IsNull(貓,'19')作爲貓從狗。如果貓是一個整數,讓單引號離開。 – BendEg 2014-11-06 14:57:36

+0

謝謝你完美的工作。 – Himarm 2014-11-06 15:12:56

2
string rowString = !String.IsNullOrEmpty(row[0].ToString()) ? row[0].ToString() : "19"; 
coolList.Add(rowString); 

,而是如果你使用.NET 4.0或更新版本,您可以使用String.IsNullOrWhiteSpace

+0

感謝這是我最初尋找的東西,但是SQL使它更容易。不過,我在其他地方使用這個作品是另一個我非常感謝的問題。 – Himarm 2014-11-06 15:13:43

1

而是創建一個List<string>的,你可以使用LINQ to DataSet/DataTable像:

textBox7.Text = string.Join(" ", 
    dt.AsEnumerable() 
     .Select(r => string.IsNullOrWhiteSpace(r.Field<string>(0)) 
      ? "19" 
      : r.Field<string>(0))); 
1

使用ISNULL是幹麻需要處理這個問題。