2011-04-10 36 views
0

使用日期訪問數據庫中的記錄時遇到問題。我在這裏做錯了,不記得你是否需要#。我錯過了什麼?使用日期訪問記錄

SqlDataReader MyReader; 
SqlConnection Conn; 
Conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NoteBook.mdf;Integrated Security=True;User Instance=True"); 

SqlCommand MyCommand = new SqlCommand(); 
MyCommand.CommandText = "SELECT Id, Date, Note FROM NoteBook Where Date = #07/04/2011#";//Id = 1"; //; // + Message.Text + ""; 
MyCommand.CommandType = CommandType.Text; 
MyCommand.Connection = Conn; 

MyCommand.Connection.Open(); 
MyReader = MyCommand.ExecuteReader(CommandBehavior.CloseConnection); 

while (MyReader.Read()) 
{ 
    TextBox1.Text = (string)MyReader["Note"]; 
} 

回答

3

這裏的簡單適應是單引號:" ...Where Date = '07/04/2011'"

但這樣做的正確的事情是使用參數:

MyCommand.CommandText = 
    "SELECT Id, Date, Note FROM NoteBook Where Date = @MarkDate"; 
MyCommand.Parameters.AddWithValue("@MarkDate", new DateTime(2011, 7, 4)); 

這也將解決任何符號上的問題,你真正的意思7月4日?

而且我通常會將時間包括在Notebook條目中(而不是調用該列日期)。
如果是這樣,你將需要一個BETWEEN子句或其他東西。

+0

它不檢索我的記錄。在數據庫中日期存儲爲07/04/2011 17:07:51。我需要轉換我的約會嗎? – TeaDrinkingGeek 2011-04-10 20:30:47

+0

已經領先於你。請參閱關於之間的編輯。並且要清楚dd/mm vs mm/dd – 2011-04-10 20:32:54

+0

沒有配偶,我正在重新學習。編輯:歡呼。 – TeaDrinkingGeek 2011-04-10 20:35:05