加为好友
发送私信
在线聊天
发表于:2008-04-29 20:44:04 楼主
这是别人帮忙做的一个用户管理系统中的一个查询后的结果页面,因为有些问题,几个用户同时访问有些慢,我稍加了修改,设置分页,因为对.net是初学能力有限,所以这段代码运行有错误提示:metadata不能读取还是不能查询(忘了,呵呵)ConnClass.cs 里是一些数据访问的sqldata代码,getdr是一个返回datareader的 代码有点多超过限制了,去掉了分页部分,现在问题在数据读取里所以分页就先不放了 int PageSize=20,CurrentPage=1,AllPageCount=0,PageCount=0; string Result_SearchBar_Str="",Search_QueryString=""; DateTime Starttime,Endtime; Starttime = new DateTime(1900,01,01); Endtime = new DateTime(1900,01,01); if(Request.Params["Start_time"]!=null) Starttime = Convert.ToDateTime(Request.Params["Start_time"]); if(Request.Params["End_time"]!=null) Endtime = Convert.ToDateTime(Request.Params["End_time"]); if(Request.QueryString["CurrentPage"]!=null) { CurrentPage = Convert.ToInt32(Request.QueryString["CurrentPage"].ToString()); } bool Flag=false; string UserName="",Town="",Village="",ResultSel="",ResultInfoSel=""; StringBuilder ResultString = new StringBuilder(); StringBuilder ResultInfoString = new StringBuilder(); StringBuilder Result_SearchBar = new StringBuilder(); string SqlString = "Select Top "+PageSize+" * From users Where id > 0 "; string Sql_AllPageCount = "select count(*) as num From users Where (id > 0) "; string Sql_SubSearch = "select top "+PageSize*(CurrentPage-1)+" id from users Where id > 0 "; ResultInfoSel = "根据"; if(Request.Params["Name"]!=null) { UserName=Request.Params["Name"].ToString().Trim(); Search_QueryString = Search_QueryString + "&Name=" + UserName; SqlString = SqlString + " and name Like '%"+UserName+"%'"; Sql_AllPageCount = Sql_AllPageCount + " and (name Like '%"+UserName+"%')"; Sql_SubSearch = Sql_SubSearch + " and name Like '%"+UserName+"%'"; ResultInfoSel = ResultInfoSel + "用户名为: <font color=red>"+UserName+" </font> <font color= #000000 >, </font>"; Flag = true; } if(Request.Params["Town"]!=null) { Town=Request.Params["Town"].ToString().Trim(); string sqltown = "select * from town where id=" +Town; string Xianzhen = ""; SqlDataReader myReader = ConnClass.getdr(sqltown); if(myReader.Read()) Xianzhen = myReader["town"].ToString(); Search_QueryString = Search_QueryString + "&Town=" + Town; SqlString = SqlString + " and town=" + " '"+Town+" '"; Sql_AllPageCount = Sql_AllPageCount +" and town=" + " '"+Town+" '"; Sql_SubSearch = Sql_SubSearch +" and town=" + " '"+Town+" '"; ResultInfoSel = ResultInfoSel + " <font color=#000000 >乡镇为: </font> <font color=red>"+Xianzhen+" </fond> <font color= #000000 >, </font>"; myReader.Close(); Flag = true; } if(Request.Params["Village"]!=null) { string Cunzhuang=""; Village=Request.Params["Village"].ToString().Trim(); string sqlvillage = "select * from village where id=" +Village; SqlDataReader myReader1 = ConnClass.getdr(sqlvillage); if(myReader1.Read()) Cunzhuang = myReader1["village"].ToString(); Search_QueryString = Search_QueryString + "&Village=" + Village; SqlString = SqlString +" and village=" + " '"+Village+" '" ; Sql_AllPageCount = Sql_AllPageCount + " and village=" + " '"+Village+" '" ; Sql_SubSearch = Sql_SubSearch + " and village=" + " '"+Village+" '" ; ResultInfoSel = ResultInfoSel + " <font color=#000000 >村庄为: </font> <font color=red>"+Cunzhuang+" </fond> <font color= #000000 >, </font>"; myReader1.Close(); Flag = true; } if((Starttime.ToString()!="1900-1-1 0:00:00")&(Endtime.ToString()!="1900-1-1 0:00:00")) { Search_QueryString = Search_QueryString + "&Start_time="+System.DateTime.Parse(Starttime.ToString()).ToString("yyyy-mm-dd") + "&End_time="+System.DateTime.Parse(Endtime.ToString()).ToString("yyyy-mm-dd"); SqlString = SqlString + " and (starttime between '"+Starttime+"' and '"+Endtime+"') "; Sql_SubSearch = Sql_SubSearch + " and (starttime between '"+Starttime+"' and '"+Endtime+"') "; Sql_AllPageCount = Sql_AllPageCount + " and (starttime between '"+Starttime+"' and '"+Endtime+"') "; ResultInfoSel = ResultInfoSel + " <font color=black>开户时间为 </font> <font color=red>"+System.DateTime.Parse(Starttime.ToString()).ToString("yyyy-mm-dd")+" </font>至 <font color=red>"+System.DateTime.Parse(Endtime.ToString()).ToString("yyyy-mm-dd")+" </font>,"; Flag = true; } ResultInfoSel = ResultInfoSel +" <font color=#000000>查询到下列用户 </font>"; if( !Flag ) { ResultInfoSel = " <font color= #000000 >未选择查询条件,查询到下列用户 </font>"; } Sql_SubSearch = Sql_SubSearch + " order by id"; SqlString = SqlString+" and ID not in( "+ Sql_SubSearch + " ) "+" order by id"; //计算记录条数,避免重复计算 if(Request["AllPage"]==null) { SqlDataReader myReader2 = ConnClass.getdr(Sql_AllPageCount); if(myReader2.Read()) AllPageCount = Int32.Parse(myReader2["num"].ToString()); myReader2.Close(); } else { AllPageCount = Int32.Parse(Request["AllPage"]); } Search_QueryString = Search_QueryString + "&AllPage="+AllPageCount; SqlDataReader returnReader = ConnClass.getdr(SqlString); int RecorderCount=1; while(returnReader.Read())//提取数据 { string sqltown1 = "select * from town where id="+returnReader["town"]; SqlDataReader myReader3 = ConnClass.getdr(sqltown1); string sqlvillage1= "select * from village where id="+returnReader["village"]; SqlDataReader myReader4 = ConnClass.getdr(sqlvillage1); if(returnReader["userstate"].ToString()=="F") { ResultSel = ResultSel +" <tr valign='top'onclick=ChargeDetail('"+ returnReader["Id"].ToString() +"') > <TD colspan=9 onmouseover=this.className='bg2' onmouseout=this.className='bg1' style='cursor:hand;' height=20 bgcolor=#f5f5f5 valign=top > <table> <tr> <td width=45 align=center >"+(RecorderCount + PageSize*(CurrentPage-1))+" </td> <td width=75 align=center >"+returnReader["name"].ToString()+" </td> <td width=75 align=center >"+myReader3["town"].ToString()+" </td> <td width=75 align=center >"+myReader4["village"].ToString()+" </td> <td width=75 align=center >"+returnReader["mph"].ToString() +" </td> <td width=75 align=center >"+returnReader["startfee"].ToString()+"元 </td> <td width=75 align=center > <font color= red >停用 </font> </td> <td width=75 align=center >"+returnReader["czfp"].ToString()+" </td> <td width=150 align=center >"+ DateTime.Parse(returnReader["starttime"].ToString()).ToString("yyyy-MM-dd") +" </td> </tr> </table> </TD> </tr>"; } if(returnReader["userstate"].ToString()=="T") { ResultSel = ResultSel +" <tr valign='top'onclick=ChargeDetail('"+ returnReader["Id"].ToString() +"') > <TD colspan=9 onmouseover=this.className='bg2' onmouseout=this.className='bg1' style='cursor:hand;' height=20 bgcolor=#f5f5f5 valign=top > <table> <tr> <td width=45 align=center >"+(RecorderCount + PageSize*(CurrentPage-1))+" </td> <td width=75 align=center >"+returnReader["name"].ToString()+" </td> <td width=75 align=center >"+myReader3["town"].ToString()+" </td> <td width=75 align=center >"+myReader4["village"].ToString()+" </td> <td width=75 align=center >"+returnReader["mph"].ToString() +" </td> <td width=75 align=center >"+returnReader["startfee"].ToString()+"元 </td> <td width=75 align=center > <font color= blue >正常使用 </font> </td> <td width=75 align=center >"+returnReader["czfp"].ToString()+" </td> <td width=150 align=center >"+ DateTime.Parse(returnReader["starttime"].ToString()).ToString("yyyy-MM-dd") +" </td> </tr> </table> </TD> </tr>"; } myReader3.Close(); myReader4.Close(); RecorderCount++; }
问题点数: 20 回复次数:6
显示所有回复 显示星级回复 显示楼主回复
修改
删除
举报
引用
回复