至少可以 dataTimePicker.Value.ToString("yyyy-MM-dd HH:mm:ss").Equals(sqlDataReader["Field"])...

解决方案 »

  1.   

    如果日期要做主键,你真应该使用三个int型字段组合起来做为主键。
      

  2.   


    当你动态产生一个 sql 语句时,你应该写类似这样的代码var s = dt.ToString("yyyy-MM-dd");
    var t = dt.AddDays(1).ToString("yyyy-MM-dd");
    sql += "where [field name]>='"+ s + "' and [field name]<'"+t;
      

  3.   

    var s = dt.ToString("yyyy-MM-dd");
    var t = dt.AddDays(1).ToString("yyyy-MM-dd");
    sql += " where [field name]>='"+ s + "' and [field name]<'"+ t +“‘”;
    显然,不是 between,只能是 [s, t) 这个范围,右边是不封闭的。注意,不要胡乱对数据库中的字段使用函数,不要随便就丧失了数据库“索引”。