2个搜索时间的textbok (txtAddTime1,txtAddTime2)
  DADDTIME是对应数据库中要搜索的字段
现在我and convert(nvarchar(20),DADDTIME,120)这样转化,查询列表,为什么搜索的结果和数据库中的不对一,是不是写错了?
strWhere 是搜索条件
 if (!string.IsNullOrEmpty(txtAddTime1.Value.Trim()))
            {
                strWhere += " and convert(nvarchar(20),DADDTIME,120)<='" + txtAddTime1.Value.Trim() + "' and convert(nvarchar(20),DADDTIME,120)<>'1900-01-01'";
            }
            if (!string.IsNullOrEmpty(txtAddTime2.Value.Trim()))
            {
                strWhere += " and convert(nvarchar(20),DADDTIME,120)<='" + txtAddTime2.Value.Trim() + "' and convert(nvarchar(20),DADDTIME,120)<>'1900-01-01'";
            }

解决方案 »

  1.   

    你数据库存储的是datetime类型的数据吧 格式是2011-12-26 00:00:00.000
    而你查询的格式是2011-12-26 好像是因为这个原因 其实还是转换的问题。
    我写的你看看 希望对你有帮助
    DAL
       /// <summary>
            /// 根据日期,资源名称,资源描述查询资源信息
            /// </summary>
            /// <returns></returns>
            public DataSet FN_SerchByDateAndType(Guid FolderId, NRModel.File model, string createdate, string endate)
            {
                string strSql = "select * from t_File where 1 =1 and FolderId=@FolderId";
                string strWhere = "";
                if (!string.IsNullOrEmpty(model.FileNam))
                {
                    strWhere += " and FileNam like @FileNam";
                }
                //if (!string.IsNullOrEmpty(model.Decription)k)
                //{
                //    strWhere += " and Decription like @Decription";
                //}
                if (!string.IsNullOrEmpty(createdate) || !string.IsNullOrEmpty(endate))
                {
                    strWhere += " and CreateOn between @createdate and @endate order by ModefyOn desc";
                }
                strSql += strWhere;
                SqlParameter[] parameters = {
                                    new SqlParameter("@FolderId", SqlDbType.UniqueIdentifier),
                                    new SqlParameter("@FileNam", SqlDbType.NVarChar, 256),
                                    new SqlParameter("@createdate", SqlDbType.NVarChar),
                                    new SqlParameter("@endate", SqlDbType.NVarChar)
                            };
                parameters[0].Value = FolderId;
                parameters[1].Value = "%" + model.FileNam + "%";
                //parameters[1].Value = "%" + model.Decription + "%";
                parameters[2].Value = createdate;
                parameters[3].Value = endate;
                return DbHelperSQL.Query(strSql, parameters);
                //SqlParameter[] parameters = new SqlParameter[4];
                //parameters[0] = new SqlParameter("@FileNam", model.FileNam);
                //parameters[1] = new SqlParameter("@stardate", createdate);
                //parameters[2] = new SqlParameter("@enddate", endate);
                ////执行存储过程
                //return DbHelperSQL.RunProcedure("P_UserSerch", parameters, "t_File");
            }界面
    #region  关键字和日期搜索
            public void FN_SerchByDateAndFileName()
            {
                try
                {
                    folderid = Session["id"].ToString();//文件夹编号
                    Guid fid = new Guid(folderid);//转换成GUID类型
                    NRModel.File model = new Asiastar.NRModel.File();
                    NRBLL.File bn = new Asiastar.NRBLL.File();
                    key = Request["key"].ToString();//条件
                    if (key != null)
                    {
                        model.FileNam = key;
                    }
                    stardate = Request["stardate"].ToString();//开始日期
                    dataend = Request["enddate"].ToString();//结束日期
                    if (bn.FN_SerchByDateAndType(fid, model, stardate, dataend) != null || bn.FN_SerchByDateAndType(fid, model, stardate, dataend).Tables[0].Rows.Count > 0)
                    {
                        PagedDataSource pds = new PagedDataSource();
                        pds.AllowPaging = true;//启用分页
                        pds.PageSize = pager1.PageSize; //设置页面显示的项数
                        pds.CurrentPageIndex = pager1.CurrentPageIndex - 1;//当前索引
                        pds.DataSource = bn.FN_SerchByDateAndType(fid, model, stardate, dataend).Tables[0].DefaultView;//指定数据源
                        pager1.RecordCount = bn.FN_SerchByDateAndType(fid, model, stardate, dataend).Tables[0].Rows.Count;
                        this.RepeaterShow.DataSource = pds;
                        this.RepeaterShow.DataBind();
                    }
                }
                catch (Exception ex)
                {
                    NR.Error.Log.LogType(ex.ToString());//记录异常
                }
            }
            #endregionBL返回DAL 这个就不写了 会把?