【问题标题】:Criteria mismatched between two dates两个日期之间的条件不匹配
【发布时间】:2019-04-20 12:19:55
【问题描述】:

它总是在标准表达式中显示标准不匹配。这是我的代码。

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();

【问题讨论】:

  • 很可能与日期格式有关。你现在把它变成一个字符串。为此,您可以更好地使用参数。

标签: c# sql ms-access


【解决方案1】:

尝试以下方法,它可以避免数据类型不匹配。如果您的列不仅是数据,请将参数设为数据时间:

            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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2018-03-18
    • 2021-11-28
    • 2011-06-29
    相关资源
    最近更新 更多