2012-07-17 32 views
0

下面是我的代碼(C#),但是沒有顯示任何內容。在SQL中使用C#datetime語句

這個問題似乎與@lastlogged參數一樣,就像我硬編碼它的值返回一樣,值lastlogged已經使用Convert.ToDateTime(「2012-07-17 15:18:14.993」)轉換。

更新錯誤:必須聲明標量變量「@lastlogged」。

string sqlStr = "SELECT * FROM View_AllJobDetails WHERE UpdatedDateStaff >= @lastlogged"; 
     SqlCommand cmd = new SqlCommand(sqlStr, cnn); 
     cmd.Parameters.Add("@lastlogged", SqlDbType.DateTime); 
     cmd.Parameters["@lastlogged"].Value = lastlogged; 
+0

嘗試設置參數的大小...'SqlDbType.DataTime,8);' – freefaller 2012-07-17 15:06:24

+1

時間元素是否停止結果?這不僅僅是被檢查的日期。此外,'AddWithValue'是首選:'AddWithValue(「@ lastlogged」,lastlogged);'它可以推斷它是'DateTime'。 – 2012-07-17 15:06:28

+0

什麼是UpdatedDateStaff的數據類型? – 2012-07-17 15:14:07

回答

0

你爲什麼不嵌入lastlogged值本身到sqlStr -

string sqlStr = "SELECT * FROM View_AllJobDetails WHERE UpdatedDateStaff >= " + string.Format("{0:dd-MMM-yyyy}",lastlogged); 

另一種方法可以創建數據庫的存儲過程,並添加此參數。

-1

我注意到有時參數有日期問題。但是,它可以隱式地將字符串轉換爲日期。因此,嘗試:

AddWithValue("@lastlogged", lastlogged.ToString)