效率很高的自定义分页

前台页面 ASPX
<asp:DataList id="dlData" runat="server" CellPadding="1" CellSpacing="1" Width="100%">
      <ItemTemplate>
       <div class="DIV_Zone">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
         <tr>
          <td class="DIV_Zone_Left"><a href='/zone/default.aspx?zoneid=<%#DataBinder.Eval(Container.DataItem, "zoneid")%>' target="_blank"><%#DataBinder.Eval(Container.DataItem, "name")%></a></td>
          <td class="DIV_Zone_Right"><img src="https://images.cnblogs.com/spb361_home/spb361_zone_08.gif" width="102" height="18" align="absMiddle">
           <%#DataBinder.Eval(Container.DataItem, "zoneadmin")%>
          </td>
         </tr>
         <tr>
          <td height="7" colspan="2" background="/images/spb361_home/spb361_zone_11.gif"></td>
         </tr>
         <tr>
          <td align="center"><img src='<%#DataBinder.Eval(Container.DataItem, "imgsign")%>'></td>
          <td><a href='/zone/default.aspx?zoneid=<%#DataBinder.Eval(Container.DataItem, "zoneid")%>' target="_blank"><%#mLib.EncodeOut("",DataBinder.Eval(Container.DataItem, "info").ToString(),300)%></a></td>
         </tr>
         <tr>
          <td>&nbsp;</td>
          <td align="right"><a href='/index/applyzone.aspx?zoneid=<%#DataBinder.Eval(Container.DataItem, "zoneid")%>' target=_blank><img src="https://images.cnblogs.com/spb361_home/spb361_zone_15.gif" width="118" height="22" border="0"></a></td>
         </tr>
         <tr>
          <td colspan="2" class="DIV_Zone_Foot">本服务圈共
           <%#DataBinder.Eval(Container.DataItem, "spbcount")%>
           家SPB,拥有以下标签:<%#DataBinder.Eval(Container.DataItem, "zonecaption")%>
          </td>
         </tr>
        </table>
       </div>
       <div style="background-image:url(/images/spb361_home/spb361_zone_05.gif); background-repeat:repeat-x; height:6px"></div>
      </ItemTemplate>
     </asp:DataList>
     <P></P>
    </div>
    <div class="DIV_Right_Foot"><FONT face="宋体">
      <asp:label id="labPage" runat="server"></asp:label>&nbsp;
      <asp:linkbutton id="ltnFirst" runat="server" CommandName="first">第一页</asp:linkbutton>&nbsp;
      <asp:linkbutton id="ltnPrev" runat="server" CommandName="prev">上一页</asp:linkbutton>&nbsp;
      <asp:linkbutton id="ltnNext" runat="server" CommandName="next">下一页</asp:linkbutton>&nbsp;
      <asp:linkbutton id="ltnLast" runat="server" CommandName="last">最末页</asp:linkbutton>&nbsp;
      <asp:linkbutton id="ltnCustom" runat="server" CommandName="Custom">转到</asp:linkbutton>
      <asp:textbox id="txtCustom" runat="server" Width="25px" MaxLength="4" Height="18px" BorderColor="Gray"
       BorderWidth="1px" BorderStyle="Solid"></asp:textbox>&nbsp;页 </FONT>
    </div>
   </div>
后台。CS
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

using Library;

namespace spb361.njd.index
{
 /// <summary>
 /// zone 的摘要说明。
 /// </summary>
 public class zone : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.TextBox txtCustom;
  protected System.Web.UI.WebControls.LinkButton ltnCustom;
  protected System.Web.UI.WebControls.LinkButton ltnLast;
  protected System.Web.UI.WebControls.LinkButton ltnNext;
  protected System.Web.UI.WebControls.LinkButton ltnPrev;
  protected System.Web.UI.WebControls.LinkButton ltnFirst;
  protected System.Web.UI.WebControls.Label labPage;
  protected System.Web.UI.WebControls.DataList dlData;

  protected library mLib = new library();
  protected string gSpb361PageTitle = System.Configuration.ConfigurationSettings.AppSettings["Spb361PageTitle"].ToString() ;
  protected System.Web.UI.HtmlControls.HtmlGenericControl labToday;

  private int gPageSize = 4;
 
  private void Page_Load(object sender, System.EventArgs e)
  {
   
   this.labToday.InnerText = DateTime.Now.ToString("yyyy年MM月dd日");

   if(! Page.IsPostBack)
   {
    ViewState["CurrentPage"] = "1";
    ViewState["PageCount"] = "0";


    GetData();
   }
  }

  private void GetData()
  {
   try
   {
    bool mPrveBtnisEnabled = false;
    bool mNextBtnisEnabled = false;
    bool mCustBtnisEnabled = false;    

    string mCountSQL = "SELECT COUNT(*) FROM tab_zone";

    dbExcute mDB = new dbExcute();
    
    int i,j,t;

    int mCurrentPage = int.Parse(ViewState["CurrentPage"].ToString());    

    int mRowCount = 0;
    int mPageCount = 0;     
    
    mRowCount = int.Parse(mDB.GetSingleData(mCountSQL));
   
    mPageCount = mRowCount / gPageSize;
    if((mRowCount % gPageSize) > 0)
    {
     mPageCount += 1;
    }

    
    ViewState["PageCount"] = mPageCount.ToString();

    int pageRowCount = gPageSize;
    if(pageRowCount > mRowCount)
    {
     pageRowCount = mRowCount - ((mCurrentPage - 1) * gPageSize);
    }

    if((mCurrentPage * gPageSize) > mRowCount)
    {
     pageRowCount = mRowCount - ((mCurrentPage - 1) * gPageSize);
    }

    if(mRowCount > 0)
    {
     string mSQL = "select b.* FROM (SELECT TOP "+ pageRowCount +" a.* FROM (SELECT TOP "+ (mCurrentPage * gPageSize) +" zone.*, isnull(spbcount,'0') as spbCount "
      + " FROM tab_zone zone LEFT JOIN (SELECT COUNT(*) AS spbcount, zoneid FROM tab_zone_spb GROUP BY zoneid) spb "
      + " ON zone.zoneid = spb.zoneid ORDER BY zone.zoneid DESC) a ORDER BY a.zoneid) b Order by b.zoneid desc";

     mSQL += " select b.wm_login,a.zoneid from tab_zone_admin a, tab_website_member b where a.memberid = b.wm_id ORDER BY a.zoneid DESC";

     mSQL += " SELECT * FROM tab_label WHERE category = 7 ORDER BY id";

     DataSet mDataSet = mDB.GetDataSet(mSQL,true);

     mDataSet.Tables[0].Columns.Add("zonecaption");
     mDataSet.Tables[0].Columns.Add("zoneadmin");

     for(i = 0; i < mDataSet.Tables[0].Rows.Count; i++)
     {            
      for(j=0; j < mDataSet.Tables[1].Rows.Count; j++)
      {
       if(mDataSet.Tables[1].Rows[j]["zoneid"].ToString() == mDataSet.Tables[0].Rows[i]["zoneid"].ToString())
       {
        mDataSet.Tables[0].Rows[i]["zoneadmin"] += mDataSet.Tables[1].Rows[j]["wm_login"].ToString() + ",";
        mDataSet.Tables[1].Rows.RemoveAt(j);
       }
      }

      for(t=0; t < mDataSet.Tables[2].Rows.Count; t++)
      {
       if(mDataSet.Tables[2].Rows[t]["id"].ToString() == mDataSet.Tables[0].Rows[i]["zoneid"].ToString())
       {
        mDataSet.Tables[0].Rows[i]["zonecaption"] += mDataSet.Tables[2].Rows[t]["caption"].ToString() + ",";
        mDataSet.Tables[2].Rows.RemoveAt(t);
       }
      }
     }
    
     this.dlData.DataSource = mDataSet.Tables[0].DefaultView;
     this.dlData.DataBind();
    
     mPrveBtnisEnabled = !(int.Parse(ViewState["CurrentPage"].ToString()) == int.Parse(((String)ViewState["PageCount"]))); 
     mNextBtnisEnabled = !(int.Parse(ViewState["CurrentPage"].ToString()) == 1);
     mCustBtnisEnabled = !(int.Parse(((String)ViewState["PageCount"])) == 1);
     
    }
    else
    {
     this.dlData.Visible = false;
     ViewState["CurrentPage"] = "0";     
    }


    this.labPage.Text = "第" + ViewState["CurrentPage"].ToString() + "页/共" + (String)ViewState["PageCount"] + "页";
           
    this.ltnNext.Enabled = mPrveBtnisEnabled;
    this.ltnLast.Enabled = mPrveBtnisEnabled;    
    this.ltnFirst.Enabled = mNextBtnisEnabled;
    this.ltnPrev.Enabled = mNextBtnisEnabled;    
    this.ltnCustom.Enabled = mCustBtnisEnabled;    

   }
   catch(Exception ex)
   {
    mLib.GotoErrPage(ex.Message);
   }
   
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.ltnFirst.Click += new System.EventHandler(this.ltnFirst_Click);
   this.ltnPrev.Click += new System.EventHandler(this.ltnPrev_Click);
   this.ltnNext.Click += new System.EventHandler(this.ltnNext_Click);
   this.ltnLast.Click += new System.EventHandler(this.ltnLast_Click);
   this.ltnCustom.Click += new System.EventHandler(this.ltnCustom_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void ltnFirst_Click(object sender, System.EventArgs e)
  {
   library mylib = new library();
   ViewState["CurrentPage"] = mylib.page_onClick(this.ltnFirst.CommandName.ToString(),this.txtCustom.Text,int.Parse(ViewState["CurrentPage"].ToString()),int.Parse((String)ViewState["PageCount"]));
   
   GetData();

  }

  private void ltnPrev_Click(object sender, System.EventArgs e)
  {
   library mylib = new library();
   ViewState["CurrentPage"] = mylib.page_onClick(this.ltnPrev.CommandName.ToString(),this.txtCustom.Text,int.Parse(ViewState["CurrentPage"].ToString()),int.Parse((String)ViewState["PageCount"]));
   
   GetData();
  }

  private void ltnNext_Click(object sender, System.EventArgs e)
  {
   library mylib = new library();
   ViewState["CurrentPage"] = mylib.page_onClick(this.ltnNext.CommandName.ToString(),this.txtCustom.Text,int.Parse(ViewState["CurrentPage"].ToString()),int.Parse((String)ViewState["PageCount"]));
  
   GetData();
  }

  private void ltnLast_Click(object sender, System.EventArgs e)
  {
   library mylib = new library();
   ViewState["CurrentPage"] = mylib.page_onClick(this.ltnLast.CommandName.ToString(),this.txtCustom.Text,int.Parse(ViewState["CurrentPage"].ToString()),int.Parse((String)ViewState["PageCount"]));
   
   GetData();
  }

  private void ltnCustom_Click(object sender, System.EventArgs e)
  {
   library mylib = new library();
   ViewState["CurrentPage"] = mylib.page_onClick(this.ltnCustom.CommandName.ToString(),this.txtCustom.Text,int.Parse(ViewState["CurrentPage"].ToString()),int.Parse((String)ViewState["PageCount"]));
   
   GetData();
  }
 }
}

类文件 library
using System;
using System.Text.RegularExpressions;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Text;
using System.Web.Mail;


namespace Library
{
 /// <summary>
 /// 名称:library.cs
 /// 时间:2005-7-26
 /// 作者:Mr.HZ
 /// 说明:网站共用函数,过程类库
 /// </summary>
 public class library
 {  
  
  public string PageTitle
  {
   get
   {
    return System.Configuration.ConfigurationSettings.AppSettings["PageTitle"];
   }
  }

 


  public string PageKeyword
  {
   get
   {
    return System.Configuration.ConfigurationSettings.AppSettings["PageKeyword"];
   }
  }

  public string PageDescription
  {
   get
   {
    return System.Configuration.ConfigurationSettings.AppSettings["PageDescription"];
   }
  }


  /// <summary>
  /// 页面翻页按钮点击事件
  /// </summary>
  /// <param name="Change">翻页命令,用来确定翻页方向 [string]</param>
  /// <param name="cusPage">指定跳转页码</param>
  /// <param name="currentPage">当前页码 [int]</param>
  /// <param name="pageCount">总页数 [int]</param>
  /// <returns>翻页后页码 [int]</returns>
  public int page_onClick(string Change,string cusPage,int currentPage,int pageCount)
  {
   int CurrentPage=currentPage;
   int PageCount=pageCount;
   int page;
   //判断cmd,以判定翻页方向
   switch(Change)
   {
    case "first":
     CurrentPage = 1;
     break;
    case "next":
     if(CurrentPage < (PageCount)) CurrentPage++;
     break;
    case "prev":
     if(CurrentPage > 1) CurrentPage--;
     break;
    case "last":
     CurrentPage = PageCount;
     break;
    case "Custom":
     Regex reg = new Regex(@"\d{1,}");   
     if(reg.IsMatch(cusPage))
     {
      page = Convert.ToInt32(cusPage);
     }
     else
     {
      page = CurrentPage;
     }
     if ((page < PageCount) && (page > 0))
      CurrentPage = page;
     else
      CurrentPage = PageCount;
     break;
   } 
   return CurrentPage;  
  }


  public void NavigationPage(string pUrl)
  {
   System.Web.HttpContext.Current.Response.Write("<script language='javascript'>window.location.href='"+ pUrl +"';</script>");
   System.Web.HttpContext.Current.Response.End();
  }

  public void ShowAlert(string pMsg)
  {
   System.Web.HttpContext.Current.Response.Write("<script language='javascript'>alert('"+ pMsg +"');</script>");   
  }

  public void HistoryBack(int pStep)
  {
   System.Web.HttpContext.Current.Response.Write("<script language='javascript'>window.history.go("+ pStep +");</script>");
   System.Web.HttpContext.Current.Response.End();
  }

  public void OpenWindew(string pUrl)
  {
   System.Web.HttpContext.Current.Response.Write("<script language='javascript'>window.open('"+ pUrl +"');</script>");
   //System.Web.HttpContext.Current.Response.End();
  }

  public void ParentNavigationPage(string pUrl)
  {
   System.Web.HttpContext.Current.Response.Write("<script language='javascript'>parent.window.location.href='"+ pUrl +"';</script>");
   System.Web.HttpContext.Current.Response.End();
  }


  public string GetSPBTag(int SPBNumber)
  {
   library mLib = new library();
   string mTag = "";
   try
   {
    string mSQL = "SELECT * FROM tab_label WHERE category = 4 AND id = "+ SPBNumber;

    dbExcute mDB = new dbExcute();
    DataTable mTable = mDB.GetData(mSQL,true);

    if(mTable.Rows.Count > 0)
    {
     for(int i = 0; i < mTable.Rows.Count; i++)
     {
      mTag += mTable.Rows[i]["caption"].ToString() + ",";
     }
    }    

   }
   catch(Exception ex)
   {
    mLib.GotoErrPage(ex.Message);
   }

   return mTag;
  }

    
  public bool CheckSpbLogin(string pSpbNum,string pPwd)
  {
   string mSpbNum = pSpbNum;
   string mPwd = pPwd;

   //加密密码
   Encrypt enPwd = new Encrypt();
   mPwd = enPwd.EncryptPwd(mPwd); 

   string m_SQL = "SELECT * FROM tab_shop_info WHERE si_spbnum = '"+ mSpbNum +"' AND si_Pwd = '"+ mPwd +"'";
   HttpCookie mCookie = new HttpCookie("spb361.ndj.ShopAdmin");
   bool m_isLogin = false;
   try
   {
   
    dbExcute myData = new dbExcute();
   

    DataTable mTable = myData.GetData(m_SQL,true);
    if(mTable.Rows.Count > 0)
    {          
     mCookie.Values.Add("ShopAdminShop",mTable.Rows[0]["si_id"].ToString());     
     mCookie.Values.Add("ShopAdminSPB",mTable.Rows[0]["si_spbnum"].ToString());
     mCookie.Values.Add("SPBName",mTable.Rows[0]["si_name"].ToString());
     mCookie.Values.Add("ShopAdminPwd",mTable.Rows[0]["si_pwd"].ToString());

     mCookie.Values.Add("SPBID",mTable.Rows[0]["si_id"].ToString());
     mCookie.Values.Add("SPBNumber",mTable.Rows[0]["si_spbnum"].ToString());
     mCookie.Values.Add("SPBPwd",mTable.Rows[0]["si_pwd"].ToString());
     mCookie.Values.Add("SPBMail",mTable.Rows[0]["si_mail"].ToString());

     System.Web.HttpContext.Current.Response.Cookies.Add(mCookie); 

     m_isLogin = true;
    }
    else
    {
     m_isLogin = false;
    }
   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }

   return m_isLogin;

  }

  public bool CheckMemberLogin(string strLogin,string strPwd)
  {
   string m_User = strLogin;
   string m_Pwd = strPwd;

   //加密密码
   Encrypt enPwd = new Encrypt();
   m_Pwd = enPwd.EncryptPwd(m_Pwd); 
           
   string m_SQL = "SELECT * FROM tab_website_member WHERE wm_login = '"+ m_User +"' AND wm_Pwd = '"+ m_Pwd +"'";   
      
   bool m_isLogin = false;
   HttpCookie m_Cookie = new HttpCookie("spb361.ndj.Member");
   
   try
   {   
    dbExcute _dbExcute = new dbExcute();        
    DataTable mTable = _dbExcute.GetData(m_SQL,true);
       
    //添加用户资料到Cookie
    if(mTable.Rows.Count > 0)
    {        
     //写入Cookie到客户端
     m_Cookie.Values.Add("MemberID",mTable.Rows[0]["wm_id"].ToString());
     m_Cookie.Values.Add("MemberLogin",mTable.Rows[0]["wm_login"].ToString());
     m_Cookie.Values.Add("MemberPwd",mTable.Rows[0]["wm_pwd"].ToString());
     m_Cookie.Values.Add("MemberPoint",mTable.Rows[0]["wm_point"].ToString());
     m_Cookie.Values.Add("MemberLevel",mTable.Rows[0]["wm_level"].ToString());
     m_Cookie.Values.Add("MemberTopicCount",mTable.Rows[0]["wm_topicCount"].ToString());
     m_Cookie.Values.Add("MemberMail",mTable.Rows[0]["wm_Mail"].ToString());

     System.Web.HttpContext.Current.Response.Cookies.Add(m_Cookie); 
  
     m_isLogin = true;
          
    }
    else
    {         
     m_isLogin = false;   
    }       
   }
   catch(Exception ex)
   {    
    throw new Exception(ex.Message);
   }
   
   return m_isLogin;
  
  }

 


  public void CheckMemberCookie(string strLogin,string strPwd)
  {
   string m_User = strLogin;
   string m_Pwd = strPwd; 
           
   string m_SQL = "SELECT COUNT(*) FROM tab_website_member WHERE wm_login = '"+ m_User +"' AND wm_Pwd = '"+ m_Pwd +"'";   
      
   bool m_isLogin = false;
   HttpCookie m_Cookie = new HttpCookie("spb361.ndj.Member");
   
   try
   {   
    dbExcute _dbExcute = new dbExcute();        
       
    if(int.Parse(_dbExcute.GetSingleData(m_SQL)) > 0)
    {
     System.Web.HttpContext.Current.Response.Write("<script language='javascript'>window.location.href='/member/login.aspx';</script>");
     System.Web.HttpContext.Current.Response.End();
    }
   }
   catch(Exception ex)
   {    
    throw new Exception(ex.Message);
   }   
  }


  public void CheckSPBCookie(string strLogin,string strPwd)
  {
   string m_User = strLogin;
   string m_Pwd = strPwd;
           
   string m_SQL = "SELECT COUNT(*) FROM tab_website_member WHERE wm_login = '"+ m_User +"' AND wm_Pwd = '"+ m_Pwd +"'";   
      
   bool m_isLogin = false;
   HttpCookie m_Cookie = new HttpCookie("spb361.ndj.Member");
   
   try
   {   
    dbExcute _dbExcute = new dbExcute();        
       
    if(int.Parse(_dbExcute.GetSingleData(m_SQL)) > 0)
    {
     System.Web.HttpContext.Current.Response.Write("<script language='javascript'>window.location.href='/spb/login.aspx';</script>");
     System.Web.HttpContext.Current.Response.End();
    }
   }
   catch(Exception ex)
   {    
    throw new Exception(ex.Message);
   }   
  }

 

  public string EncodeOut(string pTmpString,string rewString, int pLength)
  {
   string mTmpString = pTmpString;
   string mString = rewString;
   int mLength = 1;

   if(mString == null)
   {
    mString = "";
   }

   if(mTmpString == null)
   {
    mTmpString = "";
   }

   if((pLength - mTmpString.Length) > 0  )
   {
    mLength = pLength - mTmpString.Length;
   }
   else
   {
    mLength = 1;
   }

   //mTmpString = System.Web.HttpContext.Current.Server.HtmlEncode(mTmpString);
   mString = System.Web.HttpContext.Current.Server.HtmlEncode(mString);
   if((mTmpString.Length + mString.Length) > pLength)
   {
    mString = mString.Substring(0,mLength) + "…";
   }

   mString = mString.Replace("\n","<br>");
   
   return mString;

  }

  public string FilterString(string rewString)
  {
   try
   {
    string mSQL = "SELECT word FROM tab_filter";
    dbExcute mDB = new dbExcute();
    string mWord = mDB.GetSingleData(mSQL);
    int mLength;
    string mString = rewString;

    string [] aWord = mWord.Split(new char [] {','});
    for(int i = 0; i < aWord.Length; i++)
    {
     mLength = aWord[i].Length;
     mString = mString.Replace(aWord[i].ToString(),"*".PadRight(mLength,'*'));
    }

    return mString;

   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }
  }

  public string formatString(string rewString)
  {
   try
   {
    string _string = rewString.Trim();
    _string = _string.Replace("'","''");
   
    return _string;

   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }
  }

  public void GotoErrPage(string errMsg)
  {
   string mErrMsg = errMsg;
   mErrMsg = System.Web.HttpContext.Current.Server.UrlEncode(mErrMsg);

   string mPath = System.Configuration.ConfigurationSettings.AppSettings["ErrorPage"].ToString();

   System.Web.HttpContext.Current.Server.Execute(mPath + "?errmsg="+ mErrMsg); 
  }

 

  /// <summary>
  /// 生成初始点击数,50~500间随机数
  /// </summary>
  /// <returns></returns>
  public int CreateHit()
  {  
   Random m_Rd = new Random(DateTime.Now.Second);
   int m_Hit = m_Rd.Next(50,500);
   return m_Hit;
  }

 

    /// <summary>
    /// 上传、修改图片
    /// </summary>
    /// <param name="ImgURL">图片显示路径</param>
    /// <param name="ImgPath">图片上传路径</param>
    /// <param name="TopicID">文章ID</param>
    /// <param name="fleImg">图片文件</param>  
    /// <returns></returns>
    public bool UploadImage(string pConfigKey, string pImgPrefix, int pImgSize, System.Web.UI.HtmlControls.HtmlInputFile fleImg)
    {
     string m_ImgName = "";
     string m_extName = "";
     string mImgSize = "";
    
     string mImgPath = "";     
  
     //string m_SQL = "";
     
     try
     { 
      mImgPath = System.Configuration.ConfigurationSettings.AppSettings[pConfigKey].ToString(); //图片上传路径

      //==获取文章标示图片资料,设定服务器端文件名称============================================//      
      mImgSize = fleImg.PostedFile.ContentLength.ToString();        //获取文件大小
  
      if(int.Parse(mImgSize) > pImgSize)
      {      
       throw new Exception("图片大小必须 < "+ pImgSize / 100 +"K,请处理图片后重新上传!");      
      }
  
      m_ImgName = fleImg.PostedFile.FileName.ToString();        //获取文件名
      m_extName = System.IO.Path.GetExtension(m_ImgName);        //获取文件后缀名     
      m_ImgName = DateTime.Now.ToString("yyMMdd_") + m_extName;    //根据上传时间生成新文件名
  
      if(m_extName != ".jpg" && m_extName != ".gif")
      {      
       throw new Exception("上传文件格式只能是jpg、gif,其他格式图片不允许上传!");      
      }  
  
      
      //==上传图片文件==========================================================================//
      fleImg.PostedFile.SaveAs(mImgPath + m_ImgName);    //上传文件
            
 
      return true;
                     
     }
     catch(Exception ex)
     {
      throw new Exception(ex.Message);    
     }
    }


  //检查字符长度
  public int StrLength(string Str)
  {
   int Length = 0;
   try
   {
    byte[] bytStr = System.Text.Encoding.Default.GetBytes(Str);
    Length = bytStr.Length;;
   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }
   return Length;
  }

  /// <summary>
  /// 在线发送e-mail
  /// </summary>
  /// <param name="subject">邮件主题</param>
  /// <param name="body">邮件内容</param>
  /// <param name="fromMail">发件人邮箱</param>
  /// <param name="toMail">收件人邮箱</param>
  /// <returns>是否成功发送</returns>
//  public bool sendMail(string subject,string body,string fromMail, string toMail)
//  {
//   bool m_isSend = false;
//   try
//   {
//
//    DateTime m_Date = DateTime.Now;  
//
//    jmail.Message  Jmail=new jmail.Message();
//  
//    //Silent属性:如果设置为true,JMail不会抛出例外错误. JMail. Send( () 会根据操作结果返回true或false
//    Jmail.Silent = true;
//
//    //Jmail创建的日志,前提loging属性设置为true
//    //Jmail.Logging = true;
//
//    //字符集,缺省为"US-ASCII"
//    Jmail.Charset = "GB2312";
//
//    //信件的contentype. 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。
//    Jmail.ContentType = "text/html";
//
//    //添加收件人
//    Jmail.AddRecipient(toMail,"","");
//
//    Jmail.From = toMail;
//
//    //发件人邮件用户名
//    Jmail.MailServerUserName = "" ;
//
//    //发件人邮件密码
//    Jmail.MailServerPassWord = "" ;
//
//    //设置邮件标题
//    Jmail.Subject = subject;
//
//    //邮件添加附件,(多附件的话,可以再加一条Jmail.AddAttachment( "c:\\test.jpg",true,null);)就可以搞定了。[注]:加了附件,讲把上面的Jmail.ContentType="text/html";删掉。否则会在邮件里出现乱码。
//    //Jmail.AddAttachment( "c:\\test.jpg",true,null);
//
//    //邮件内容
//    Jmail.Body = body + m_Date.ToString();
//
//    //Jmail发送的方法
//    Jmail.Send("smtp.126.com",false);
//    Jmail.Close();
//
//    m_isSend = Jmail.Silent;
//   }
//  
//   catch(Exception ex)
//   {
//    throw new Exception(ex.Message);
//   }
//
//   return m_isSend;
//  }
//

  public int SendMail(string pSubject,string pBody,string pFromMail, string pToMail)
  {
   int mSended = 0;
   
   MailMessage mMail = new MailMessage();

   mMail.Subject = pSubject;
   mMail.Body = pBody;
   mMail.From = pFromMail;
   mMail.To = pToMail;

   try
   {
    SmtpMail.Send(mMail);

    mSended = 1;
   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }

   return mSended;

  }


  /// <summary>
  /// 取出兴趣爱好
  /// </summary>
  /// <returns></returns>
  //  public ListItem [] CreateInterest()
  //  {
  //   try
  //   {
  //    string m_SQL = "SELECT * FROM tab_interest ORDER BY interest_id DESC";
  //
  //    dbExcute _dbExcute = new dbExcute();
  //    DataTable m_Table = new DataTable();
  //    m_Table = _dbExcute.GetData(m_SQL[],true);
  //
  //    ListItem [] m_ListItem = new ListItem[m_Table.Rows.Count];
  //
  //    if(m_Table.Rows.Count > 0)
  //    {
  //     for(int i = 0; i < m_Table.Rows.Count; i++)
  //     {
  //      m_ListItem[i] = new ListItem();
  //      m_ListItem[i].Text = m_Table.Rows[i]["interest_name"].ToString();
  //      m_ListItem[i].Value = m_Table.Rows[i]["interest_id"].ToString();      
  //     }
  //    }   
  //
  //    return m_ListItem;
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);
  //   }
  //  }
  //
  //  /// <summary>
  //  /// 取出学校所在省
  //  /// </summary>
  //  /// <returns></returns>
  //  public ListItem [] CreateProvince()
  //  {
  //   try
  //   {
  //    string m_SQL = "SELECT * FROM tab_School WHERE school_provinceid = 0 ORDER BY school_id";
  //
  //    dbExcute _dbExcute = new dbExcute();
  //    DataTable m_Table = new DataTable();
  //    m_Table = _dbExcute.GetData(m_SQL,true);
  //
  //    ListItem [] m_ListItem = new ListItem[m_Table.Rows.Count + 1];
  //
  //    m_ListItem[0] = new ListItem();
  //    m_ListItem[0].Text = "=全部地区=";
  //    m_ListItem[0].Value = "-1";
  //
  //    for(int i = 1; i < m_Table.Rows.Count + 1; i++)
  //    {
  //     m_ListItem[i] = new ListItem();
  //     m_ListItem[i].Text = m_Table.Rows[i - 1]["school_province"].ToString();
  //     m_ListItem[i].Value = m_Table.Rows[i - 1]["school_id"].ToString();      
  //    }
  //    return m_ListItem;
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);
  //   }
  //  }
  //
  //
  //  public ListItem [] CreateShcool(string ProvinceID)
  //  {
  //   try
  //   {
  //    string m_SQL = "SELECT * FROM tab_School WHERE school_ProvinceID = "+ ProvinceID +" ORDER BY school_id,school_order";
  //
  //    dbExcute _dbExcute = new dbExcute();
  //    DataTable m_Table = new DataTable();
  //    m_Table = _dbExcute.GetData(m_SQL,true);
  //
  //    ListItem [] m_ListItem = new ListItem[m_Table.Rows.Count + 1];
  //
  //    m_ListItem[0] = new ListItem();
  //    m_ListItem[0].Text = "=全部学校=";
  //    m_ListItem[0].Value = "-1";
  //
  //    for(int i = 1; i < m_Table.Rows.Count + 1; i++)
  //    {
  //     m_ListItem[i] = new ListItem();
  //     m_ListItem[i].Text = m_Table.Rows[i - 1]["school_name"].ToString();
  //     m_ListItem[i].Value = m_Table.Rows[i - 1]["school_id"].ToString();      
  //    }
  //    return m_ListItem;
  //  
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);
  //   }
  //  }
  //
  //  /// <summary>
  //  /// 交友目的
  //  /// </summary>
  //  /// <returns></returns>
  //  public ListItem [] CreateIntent()
  //  {
  //   try
  //   {
  //    string m_SQL = "SELECT * FROM tab_intent ORDER BY intent_id ";
  //
  //    dbExcute _dbExcute = new dbExcute();
  //    DataTable m_Table = new DataTable();
  //    m_Table = _dbExcute.GetData(m_SQL,true);
  //
  //    ListItem [] m_ListItem = new ListItem[m_Table.Rows.Count];
  //
  //    for(int i = 0; i < m_Table.Rows.Count; i++)
  //    {
  //     m_ListItem[i] = new ListItem();
  //     m_ListItem[i].Text = m_Table.Rows[i]["intent_name"].ToString();
  //     m_ListItem[i].Value = m_Table.Rows[i]["intent_id"].ToString();      
  //    }
  //    return m_ListItem;
  //  
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);
  //   }
  //  }
  //
  //  public bool UploadUserPhoto(string imgPath,int UserID, System.Web.UI.HtmlControls.HtmlInputFile fleImg)
  //  {
  //   string mImgSize = "";
  //   string m_SQL = "";
  //   
  //   try
  //   {    
  //    //==获取文章标示图片资料,设定服务器端文件名称================================================================================================================//
  //    //m_fileType = fleImg.PostedFile.ContentType.ToString();      //获取文件类型
  //    mImgSize = fleImg.PostedFile.ContentLength.ToString();       //获取文件大小
  //
  //    if(int.Parse(mImgSize) > 200000)
  //    {      
  //     throw new Exception("会员照片大小必须 < 200k,请处理图片后重新上传!");      
  //    }
  //
  //    string ImgURL = System.Configuration.ConfigurationSettings.AppSettings["userPhotoUrl"].ToString();
  //    
  //    //==上传图片文件====================================================================================================================================//
  //    fleImg.PostedFile.SaveAs(System.Web.HttpContext.Current.Server.MapPath(imgPath));    //上传文件
  //    
  //    m_SQL = "INSERT INTO tab_user_album ( album_url,album_userID ,album_date ) VALUES ('"+ imgPath +"', "+ UserID +", #"+ DateTime.Now +"#)";
  //   
  //    dbExcute _dbExcute = new dbExcute();
  //    if(!_dbExcute.ExecuteData(m_SQL,true))
  //    {     
  //     return false;
  //    }
  //               
  //    return true;
  //                   
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);    
  //   }
  //  }
  //
  //
  //  /// <summary>
  //  /// 验证用户是否已经登录
  //  /// </summary>
  //  /// <param name="userLogin">用户登录名</param>
  //  /// <param name="userPwd">用户密码</param>
  //  /// <returns></returns>
  //  public bool checkMember(string userLogin, string userPwd)
  //  {
  //   try
  //   {
  //    string m_strLogin = userLogin;
  //    string m_strPwd = userPwd;
  //    TimeSpan m_ExpSpan = new TimeSpan(0,1,0);
  //    int m_Exp;
  //    int m_intExpSpan = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["ExpSpan"].ToString());
  //
  //    string m_SQL = "SELECT * FROM tab_user WHERE user_login = '"+ m_strLogin +"' AND user_pwd = '"+ m_strPwd +"'";
  //
  //    dbExcute _dbExcute = new dbExcute();
  //    //DataTable m_Table = new DataTable();
  //    //m_Table = _dbExcute.GetData(m_SQL);
  //
  //    
  //    return _dbExcute.checkDataExist(m_SQL,true);
  //     
  //
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);
  //   }
  //  }
  //
  //  public DataTable GetZoneCategory()
  //  {
  //   try
  //   {
  //    string m_SQL = "SELECT * FROM tab_category ORDER BY category_id";
  //
  //    dbExcute _dbExcute = new dbExcute();
  //    DataTable m_Table = new DataTable();
  //    m_Table = _dbExcute.GetData(m_SQL,true);
  //    
  //    return m_Table;    
  //
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);
  //   }
  //  }
  //
  //
  //  /// <summary>
  //  /// 增加用户财富
  //  /// </summary>
  //  /// <param name="_uid">用户ID</param>
  //  /// <param name="_money">增加的金币数</param>
  //  /// <returns>增加后用户所有的金币数</returns>
  //  public string UpUserMoney(string _uid, string _money)
  //  {
  //   try
  //   {
  //    string m_SQL = "UPDATE tab_user SET user_money = user_money + "+ _money +" WHERE user_id = "+ _uid;
  //    dbExcute _dbExcute= new dbExcute();
  //    _dbExcute.ExecuteData(m_SQL,false);
  //    m_SQL = "SELECT user_money FROM tab_user WHERE user_id = "+ _uid;
  //    string m_UserMoney = _dbExcute.GetSingleData(m_SQL,true);   
  //
  //    return m_UserMoney;
  //
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);
  //   }
  //  }
  //
  //  /// <summary>
  //  /// 增加用户经验值
  //  /// </summary>
  //  /// <param name="_uid">用户ID</param>
  //  /// <param name="_exp">增加的经验值</param>
  //  /// <returns>增加后用户的现有经验值</returns>
  //  public string UpUserExp(string _uid, string _exp)
  //  {
  //   try
  //   {
  //    string m_SQL = "UPDATE tab_user SET user_exp = user_exp + "+ _exp +" WHERE user_id = "+ _uid;
  //    dbExcute _dbExcute= new dbExcute();
  //    _dbExcute.ExecuteData(m_SQL,false);
  //    m_SQL = "SELECT user_exp FROM tab_user WHERE user_id = "+ _uid;
  //    string m_UserExp = _dbExcute.GetSingleData(m_SQL,true);   
  //
  //    //检查用户等级
  //    UpUserLevel(_uid,m_UserExp);
  //
  //    return m_UserExp;
  //
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);
  //   }  
  //  }
  //
  //
  //  public string UpUserLevel(string _uid,string _userexp)
  //  {
  //   try
  //   {
  //    Library.dbExcute _dbExcute= new dbExcute();   
  //    
  //    string m_SQL = "SELECT level_id FROM tab_user_level WHERE "+ _userexp +"  > level_exp ORDER BY level_exp DESC";
  //    string m_UserLevel = _dbExcute.GetSingleData(m_SQL,false);
  //
  //    m_SQL = "UPDATE tab_user SET user_levelid = "+ m_UserLevel +" WHERE user_id = "+ _uid;
  //    _dbExcute.ExecuteData(m_SQL,true);
  //
  //    return m_UserLevel;
  //
  //   }
  //   catch(Exception ex)
  //   {
  //    throw new Exception(ex.Message);
  //   }
  //  }
  //

  //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  public library()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }
 }
}
类文件 dbexcute
using System;
using System.Data;
using System.Data.SqlClient;
using System.Text.RegularExpressions;

namespace Library
{
 /// <summary>
 /// 名称:dbExcute
 /// 时间:2005-5-20
 /// 作者:Mr.HZ
 /// 说明:数据库操作类 
 /// </summary>  
 public class dbExcute
 {
  //=============================================
  //添加类属性
  //=============================================
  /// <summary>
  /// 数据库驱动字串
  /// </summary>
  private string g_ConnectionString;
  public string ConnectionString
  {
   get
   {
    return g_ConnectionString;
   }
   set
   {
    g_ConnectionString = value;
   }
  }
  //============================================
  /// <summary>
  /// SQL查询语句
  /// </summary>
  private string g_SQLString;
  public string SQLString
  {
   get
   {
    return g_SQLString;
   }
   set
   {
    g_SQLString = value;
   }
  }

  /// <summary>
  /// 声明 SqlConnection 对象
  /// </summary>
  SqlConnection myConn ;


  //=============================================
  //添加类方法
  //=============================================
  /// <summary>
  /// 打开数据库连接
  /// </summary>
  /// <returns>SqlConnection</returns>
  public SqlConnection OpenConnection()
  {
   string m_ConnectionString;
   m_ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["DBConnection"].ToString();

   if(myConn == null)
   {
    myConn = new SqlConnection(m_ConnectionString);
   }

   try
   {    
    if(myConn.State == System.Data.ConnectionState.Closed)
    {
     myConn.Open();
    }

   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }

   return myConn;
   
  }

  /// <summary>
  /// 关闭数据库连接
  /// </summary>
  public void CloseConnection()
  {
   try
   {
    if(myConn.State == System.Data.ConnectionState.Open)
    {
     myConn.Close();
    }
   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }   
  }

  /// <summary>
  /// 根据SQL语句获取数据,返回DataReader对象
  /// </summary>
  /// <param name="strSQL"></param>
  /// <returns>SqlDataReader</returns>
  public SqlDataReader ReaderData(string strSQL)
  {
   SqlDataReader myDataRead ;

   try
   {
    //打开数据库连接
    myConn = OpenConnection();

    SqlCommand myCmd = new SqlCommand(strSQL, myConn);
    myDataRead = myCmd.ExecuteReader();

    return myDataRead;

    //myDataRead.Close();
   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }
   finally
   {    
    //CloseConnection();
   }   
  }

  /// <summary>
  /// 根据传进的SQL取出数据,返回DataTable对象
  /// </summary>
  /// <param name="strSQL">数据库查询语句 [string]</param>
  /// <returns>以数据表形式返回所查询到的数据 [DataTable]</returns>
  public DataTable GetData(string strSQL,bool CloseDB)
  {
   
   SqlConnection myConn;   
   DataTable m_Table = new DataTable();

   try
   {
    myConn = OpenConnection();
    SqlDataAdapter myCmd = new SqlDataAdapter(strSQL,myConn);
    
    myCmd.Fill(m_Table);

    return m_Table;

   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }
   finally
   {
    m_Table.Dispose();

    if(CloseDB)
    {
     CloseConnection();
    }
   }
  }

  public DataSet GetDataSet(string strSQL,bool CloseDB)
  {
   
   SqlConnection myConn;   
   DataSet mDataSet = new DataSet();

   try
   {
    myConn = OpenConnection();
    SqlDataAdapter myCmd = new SqlDataAdapter(strSQL,myConn);
    
    myCmd.Fill(mDataSet);

    return mDataSet;

   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }
   finally
   {
    mDataSet.Dispose();

    if(CloseDB)
    {
     CloseConnection();
    }
   }
  }

  /// <summary>
  /// 根据传来的SQL对数据库执行操作,返回是否操作成功bool值
  /// </summary>
  /// <param name="strSQL">数据库查询语句 [string]</param>
  /// <returns>返回数据库操作是否成功:成功返回true,否则返回false [bool]</returns>  
  public bool ExecuteData(string strSQL, bool CloseDB)
  {
   bool isUpDate = false;    
   SqlCommand myCmd = new SqlCommand();

   try
   {    
    myConn = OpenConnection(); //打开数据库
    myCmd.Connection = myConn;
    
    myCmd.CommandText = strSQL;
    myCmd.ExecuteNonQuery();    
    
    isUpDate = true;   

   }
   catch (Exception ex)
   { 
    throw new Exception(ex.Message);
   }
   finally
   {
    myCmd.Dispose();

    if(CloseDB)
    {
     CloseConnection();
    }
   }

   return isUpDate;
  }


  /// <summary>
  /// 根据SQL语句,以string类型输出单一数据,如MaxID
  /// </summary>
  /// <param name="strSQL">数据库查询语句 [string]</param>
  /// <returns>返回单一字符 [string]</returns>
  public string GetSingleData(string strSQL)
  {
   string SingleData = "";  
   
   SqlCommand myCmd = new SqlCommand();

   try
   {
    myConn = OpenConnection();          
    myCmd.Connection = myConn;

    myCmd.CommandText = strSQL;
    if(myCmd.ExecuteScalar() != null)
    {
     SingleData = myCmd.ExecuteScalar().ToString();
    }
   }
   catch(Exception ex)
   {    
    throw new Exception(ex.Message);
   }
   finally
   {
    myCmd.Dispose();
    CloseConnection();
   }

   return SingleData;
  
  }


  /// <summary>
  /// 检查将要保存的数据是否已经存在在数据库中,返回是否存在的Bool值
  /// </summary>
  /// <param name="strSQL"></param>
  /// <returns></returns>
  public bool checkDataExist(string strSQL)
  {
   bool isExist;

   SqlCommand myCmd = new SqlCommand();
   SqlDataReader myDataRead;
   
   try
   {        
    myConn = OpenConnection();
    
    myCmd.Connection = myConn;
    myCmd.CommandText = strSQL;
    myDataRead = myCmd.ExecuteReader();

    isExist = myDataRead.HasRows;

    myDataRead.Close();
    
   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }
   finally
   {
    myCmd.Dispose();
    CloseConnection();  
   }

   return isExist;
  }


  /// <summary>
  /// 取出分页后数据
  /// </summary>
  /// <param name="pageNum">页数 [int]</param>
  /// <param name="pageSize">页面最大显示行数 [int]</param>
  /// <param name="strWhere">数据查询条件 [string]</param>
  /// <param name="tblName">所查询的主数据表名称 [string]</param>
  /// <param name="fldName">所有需要输出数据字段名称 [string]</param>
  /// <param name="orderName">查询排序字段名称和排序方式 [srting]</param>
  /// <param name="fidCount">计算数据Count的字段名 [string]</param>
  /// <param name="tblJoin">所查询的关联数据表名称 [string]</param>
  /// <param name="fldJoinLeft">关联数据查询表达式主数据表字段名称 [string]</param>
  /// <param name="fldJoinRight">关联数据查询表达式关联数据表字段名称 [string]</param>
  /// <param name="ViewType">文章类型 1,普通文章;2,标题文章</param>
  /// <returns>[DataTable]</returns>
  public DataTable GetPaginationData(int pageNum,int pageSize,string strWhere,string tblName,string fldName,string orderName,string fldKey, int RowCount, int ViewType, string linkTable)
  {
   SqlConnection myConn;   
   DataTable m_Table = new DataTable();

   int pageRowCount = pageSize;
   if(pageRowCount > RowCount)
   {
    pageRowCount = RowCount - ((pageNum - 1) * pageSize);
   }  
   string strSQL = "";


   strSQL = "SELECT "+ fldName +" FROM "+ tblName +" b,(SELECT TOP "+ pageRowCount +" "+ fldName +" FROM "
    + " (SELECT TOP "+ pageNum * pageSize +" "+ fldName +" FROM "+ tblName +" WHERE "+ strWhere +" ORDER BY "+ orderName +" DESC) a ORDER BY "+ orderName +") c WHERE "
    + " b."+ fldKey +" = c."+ fldKey +" ORDER BY c."+ orderName + " DESC";     

   try
   {
    myConn = OpenConnection();
    
    SqlDataAdapter myCmd = new SqlDataAdapter(strSQL,myConn);    
    myCmd.Fill(m_Table);

    return m_Table;

   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }
   finally
   {
    m_Table.Dispose();
    CloseConnection();
   }  
  }

  public DataTable GetProductData(string strSQL)
  {
   SqlConnection myConn;   
   DataTable m_Table = new DataTable();
           
   try
   {
    myConn = OpenConnection();
    
    SqlDataAdapter myCmd = new SqlDataAdapter(strSQL,myConn);    
    myCmd.Fill(m_Table);

    return m_Table;

   }
   catch(Exception ex)
   {
    throw new Exception(ex.Message);
   }
   finally
   {
    m_Table.Dispose();
    CloseConnection();
   } 
  
  }

  public dbExcute()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }

 


 }
}

转载于:https://www.cnblogs.com/yefei520/archive/2006/06/08/420278.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值