当前位置:编程学习 > C#/ASP.NET >>

搜索框搜索条件转化问题

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'";
            } --------------------编程问答-------------------- 你数据库存储的是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());//记录异常
            }
        }
        #endregion


BL返回DAL 这个就不写了 会把?
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,