我使用此代碼由日期字段篩選表(表)的表此我的代碼:誤差濾波器 基於日期字段
public double Mounthcost()
{
DateTime today = DateTime.Now;
PersianCalendar persianCalendar = new PersianCalendar();
int yearPersian = persianCalendar.GetYear(today);
int monthPersian = persianCalendar.GetMonth(today);
DateTime firstDayOfMonth = persianCalendar.ToDateTime(yearPersian, monthPersian, 1, 0, 0, 0, 0);
int daysInMonth = persianCalendar.GetDaysInMonth(yearPersian, monthPersian);
DateTime lastDayOfMonth = firstDayOfMonth.AddDays(daysInMonth - 1);
//try
//{
SqlDataReader DR = ExecuteReader(System.Data.CommandType.Text, "Select Sum(Price) From Tbl_Cost Where Dat Between" + firstDayOfMonth + "AND" + lastDayOfMonth);
if (DR.Read())
{
Mouth_Cost = Double.Parse(DR[0].ToString());
}
return Mouth_Cost;
//}
//catch
//{
// return 0;
//}
}
和此錯誤:
一種表達在期望條件的上下文中指定的非布爾型類型,在'between10'附近。
嘗試建立查詢時添加單引號日期:'之間「‘+ firstDayOfMonth +’」和' 「+」。你真的應該使用參數化查詢,或者至少明確地將日期/時間轉換爲字符串。注意,使用參數將以與.NET不同的方式解析字符串日期的問題,即「 10/5/15「十月或五月?然後將總和從一個數字數據類型轉換爲一個字符串然後解析爲一個字符串的奧祕。 – HABO