C# 两个日期之间的条件不匹配

C# 两个日期之间的条件不匹配,c#,sql,ms-access,C#,Sql,Ms Access,它总是在条件表达式中显示条件不匹配。这是我的密码 OleDbCommand pending = new OleDbCommand("SELECT * FROM businesses WHERE business_active = 0 AND date_of_application BETWEEN '" + FromDateTxt.Value.ToString("MM/dd/yyyy") + "' AND '" + ToDateTxt.Value.ToString("MM/dd/yyyy") +

它总是在条件表达式中显示条件不匹配。这是我的密码

OleDbCommand pending = new OleDbCommand("SELECT * FROM businesses WHERE business_active = 0 AND date_of_application BETWEEN '" + FromDateTxt.Value.ToString("MM/dd/yyyy") + "' AND '" + ToDateTxt.Value.ToString("MM/dd/yyyy") + "'", cn.con);
        OleDbDataReader dr_pending = pending.ExecuteReader();

请尝试以下操作,这样可以避免数据类型不匹配。如果列不仅仅是数据,请将参数设置为datatime:

            SqlParameter fromDate = new SqlParameter();
            fromDate.ParameterName = "@FromDate";
            fromDate.SqlDbType = SqlDbType.Date;
            fromDate.Direction = ParameterDirection.Input;
            fromDate.Value = FromDateTxt.Value;

            SqlParameter toDate = new SqlParameter();
            toDate.ParameterName = "@ToDate";
            toDate.SqlDbType = SqlDbType.Date;
            toDate.Direction = ParameterDirection.Input;
            toDate.Value = ToDateTxt.Value;

            OleDbCommand pending = new OleDbCommand("SELECT * FROM businesses WHERE business_active = 0 AND date_of_application BETWEEN @FromDate AND @ToDate", cn.con);
            OleDbDataReader dr_pending = pending.ExecuteReader();

很可能与日期的格式有关。你现在把它变成一根绳子。您可以更好地为此使用参数。