你好我有這個代碼從SQL DB讀取數據。使用SqlDataReader.IsDBNull時使用列名稱
我不知道該如何編輯它才能使用原始列名稱而不是列索引。
string query = "SELECT * FROM zajezd WHERE event='" + thisrow+ "' AND year='" + klientClass.Year() + "'";
SqlCommand cmd= new SqlCommand(query, spojeni);
spojeni.Open();
SqlDataReader read= cmd.ExecuteReader();
if (read.Read())
{
maskedTextBox2.Text = read.IsDBNull(24) ?
string.Empty :
read.GetDateTime(24).ToString("MM/dd/yyyy");
在此先感謝。
所以你使用的是SELECT *,你所追求的列是第24列?這是一種糟糕的編碼方式 - 當有人改變表格時會發生什麼(例如在1-23之間添加一列)?您可能會收到錯誤消息,或者您可能會碰到不同的日期時間欄,但沒有注意到。另外,你喜歡SQL注入嗎?請使用參數化查詢。像這樣的動態SQL就是爲什麼每天都有很多SQL注入漏洞的原因。 –
@NathanKoop在你的編輯中你添加了一個大括號。大概你是對的,但正如你從下面的評論中可以看出的那樣,這給OP所使用的查詢提供了非常具體的含義。如果OP只需要一列,那麼更好的方法是可能的。 – Steve
@遺憾的是延遲響應。我沒有看到您所引用的評論,但我刪除了該捲曲。這對我來說不是什麼大不了的,如果它存在或不存在:-) –