2016-06-10 71 views
0

我有一個dateTimePicker,我想要一個DGV填充從DB(SQL CE)中選擇與dateTimePicker上選定月份對應的所有條目的查詢。查詢選擇對應於所選月份的表的所有事件

這將是邏輯

SELECT FROM Employees WHERE (@MonthEnd or @MonthEnd2) = dateTimePicker1.SelectedMonth 

從@MonthEnd或@ MonthEnd2的值是日期時間。

我如何首先在dateTimePicker上選擇當前月份?

我應該將數據庫中的日期時間轉換爲字符串?或者int?那麼我應該如何選擇只有月份的數據才能與日曆的選定月份進行比較?

編輯:感謝@Hogan我能夠拿出這段代碼:(希望它有助於需要的人像我一樣(我問datetimepicker,但使用日曆))。

string constringF = @"Data Source=|DataDirectory|\cadastramentodb.sdf;Persist Security Info=False"; 
      string QueryF = "select * from Funcionarios where datepart(month, datafimcontrato) = @mes "; 
      SqlCeConnection conDataBaseF = new SqlCeConnection(constringF); 
      SqlCeCommand cmdDataBaseF = new SqlCeCommand(QueryF, conDataBaseF); 
      cmdDataBaseF.Parameters.Add("@mes", SqlDbType.Int).Value = Convert.ToInt32(monthCalendar1.SelectionStart.Month); 
+0

你知道這個SQL會選擇那個月的任何條目,完全忽略一年嗎?因此,如果您在日期選擇器中選擇八月,您將從2015年8月,2014年,2013年獲得記錄... –

+0

是的,但滿足我的需求,如果我需要當前日曆年,我可以及時獲得類似的Approuch甚至幾天。 感謝您的提示。 – Vvisions

回答

0

有一個叫做月的函數。你可以這樣使用它:

SELECT * 
FROM Emp 
WHERE MONTH(datefieldintable) = @MonthInput 
+0

它像一個魅力工作! 非常感謝您的幫助。 我將更新與我想出的實際代碼的問題,因爲我目前使用SQL CE和查詢是略有不同。 再次感謝! – Vvisions