根据日期字段错误过滤 table
Error filter the table based on a date field
我使用此代码按日期字段过滤 table(在 table 中)
这是我的代码:
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'.
您在 SQL 查询中缺少空格
SqlDataReader DR = ExecuteReader(System.Data.CommandType.Text, "Select Sum(Price) From Tbl_Cost Where Dat Between " + firstDayOfMonth + " AND " + lastDayOfMonth);
注意 BETWEEN 和 AND 之后的空格。
谢谢 HABO :)
使用这个:
SqlDataReader DR = ExecuteReader(System.Data.CommandType.Text, "Select Sum(Price) From Tbl_Cost Where Dat Between @F AND @L", new SqlParameter[]
{
new SqlParameter("@F", firstDayOfMonth),
new SqlParameter("@L", lastDayOfMonth),
}
是对的...
我使用此代码按日期字段过滤 table(在 table 中) 这是我的代码:
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'.
您在 SQL 查询中缺少空格
SqlDataReader DR = ExecuteReader(System.Data.CommandType.Text, "Select Sum(Price) From Tbl_Cost Where Dat Between " + firstDayOfMonth + " AND " + lastDayOfMonth);
注意 BETWEEN 和 AND 之后的空格。
谢谢 HABO :) 使用这个:
SqlDataReader DR = ExecuteReader(System.Data.CommandType.Text, "Select Sum(Price) From Tbl_Cost Where Dat Between @F AND @L", new SqlParameter[]
{
new SqlParameter("@F", firstDayOfMonth),
new SqlParameter("@L", lastDayOfMonth),
}
是对的...