PDA

View Full Version : سوال: خطا در اجرای کوئری با فیلتر تاریخ اول و آخر ماه جاری سیستم



ghasem110deh
شنبه 09 آبان 1394, 16:03 عصر
سلام به همه ...
مشکل این کد چیه !؟


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;
//}
}


این خطا رو میده :


An expression of non-boolean type specified in a context where a condition is expected, near 'between10'.

محمد رضا فاتحی
شنبه 09 آبان 1394, 16:07 عصر
سلام قاسم آقای گل... بعد Between ، قبل و بعد از And یه اسپیس بزن ببین درست میشه؟

ghasem110deh
شنبه 09 آبان 1394, 16:55 عصر
سلام قاسم آقای گل... بعد Between ، قبل و بعد از And یه اسپیس بزن ببین درست میشه؟

سلام آقا رضا :)
نه ... باز همون خطا رو میده :عصبانی++:

محمد رضا فاتحی
شنبه 09 آبان 1394, 17:08 عصر
نوع فیلد تاریخ چیه؟

ghasem110deh
شنبه 09 آبان 1394, 17:38 عصر
نوع فیلد تاریخ چیه؟

از نوع DateTime

بدون معماری سه لایه جواب میده ... بجای اینکه مستقیم اون دو تا متغیر رو بذارم ، دو تا پارامتر میذاری و مشکلی هم نداره (کوئری هم همینه)

ghasem110deh
شنبه 09 آبان 1394, 20:48 عصر
با پارامتر درست شد :)
ظاهرا به مشکل تبدیل string به datetime میخورده ... اما با پارامتر همچین مشکلی بوجود نمیاد !