.net+oracle 实现分页 和 菜单 (二)

--用户自定义控件  用于分页datagrid(2003的控件  05后叫gridview )

chagepage.aspx页面 

[code]

 

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="changePage.ascx.cs" Inherits="changePage" %>
<div>
    <table width="100%">
        <tr>
            <td>
                当前第<asp:Label ID="lblcurrentCount" runat="server"></asp:Label>页
            </td>
            <td>
                共<asp:Label ID="lblpageCount" runat="server"></asp:Label>页
            </td>
            <td>
                第<asp:DropDownList ID="ddlnextPage" runat="server"></asp:DropDownList>页
                <asp:Button ID="btngo" runat="server"  Text=" GO " οnclick="btngo_Click"/>
            </td>
           
        </tr>
    </table>
</div>

 

[/code]

 

chagepage.aspx.cs页面 

 

[code]

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MyApplication;

public partial class changePage : System.Web.UI.UserControl
{
    public ClickEventHandler Handler
    { get; set; }

    #region 属性
    //当前页

    public string CurrentPage
    {
        get
        {
            if (ViewState["currentPage"] == null)
            {
                return "1";
            }
            return ViewState["currentPage"].ToString();
        }
        set
        {
            ViewState["currentPage"] = value;
        }
    }
    public string PageCount
    {
        get
        {
            if (ViewState["pageCount"] == null)
            {
                return "1";
            }
            return ViewState["pageCount"].ToString();
        }
        set
        {
            ViewState["pageCount"] = value;
        }
    }
    #endregion
    public event XiaoEventHandler XiaoClick;

    protected void Page_Load(object sender, EventArgs e)
    {
        Button btnsearch = this.Page.FindControl("btnSearch") as Button;
        Handler += BindDDL;
        if (!IsPostBack)
        {
            BindDDL();
        }

    }
    public void BindDDL()
    {
        ddlnextPage.Items.Clear();
        int i = int.Parse(PageCount);
        for (int t = 1; t <= i; t++)
        {
            ddlnextPage.Items.Add(t.ToString());
        }
        lblcurrentCount.Text = this.CurrentPage;
        lblpageCount.Text = this.PageCount;
    }
    protected void btngo_Click(object sender, EventArgs e)
    {
        this.CurrentPage = ddlnextPage.SelectedItem.Text;
        lblcurrentCount.Text = this.CurrentPage;
        //lblpageCount.Text = this.PageCount;

        OnXiaoClick();

    }

    protected virtual void OnXiaoClick()
    {
        if (XiaoClick != null)
        {
            XiaoClick(int.Parse(CurrentPage));
        }
    }


}

 

 

[/code] 

因为只是个demo 所以用comm.cs 代表通用层 用 BLLlogic.cs 代表逻辑层 DALBase代表数据库访问层

 

Comm.cs页面

 

[code]

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
/// <summary>
/// Summary description for Comm
/// </summary>
namespace MyApplication
{
    public delegate void XiaoEventHandler(int currentCount);

    public delegate void ClickEventHandler();
}

public class Comm
{
    public Comm()
    {
        //
        // TODO: Add constructor logic here
        //
    }
    /// <summary>
    /// 弹出消息框
    /// </summary>
    /// <param name="page"></param>
    /// <param name="key"></param>
    /// <param name="Message"></param>
    public static void Show(System.Web.UI.Page page, string key, string Message)
    {
        string myScript = @"alert('" + Message + "');";
        if (!page.ClientScript.IsClientScriptBlockRegistered(key))
        {
            page.ClientScript.RegisterClientScriptBlock(page.GetType(), key, myScript, true);
        }
    }
    /// <summary>
    /// 判断是否为空
    /// </summary>
    /// <param name="ds"></param>
    /// <returns></returns>
    public static bool CheckDatasetISNULL(DataSet ds)
    {
        if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
        {
            return false;
        }
        return true;
    }
    public static string CheckObjectISNULL(object str)
    {
        if (str == null || str.ToString().Trim() == string.Empty)
        {
            return "";
        }
        return str.ToString().Trim();
    }
    public static string ReturnZoreWhenempty(string str)
    {
        if (str == string.Empty)
        {
            return "0";
        }
        else
        {
            return str;
        }
    }
}

 

[/code]

 

BLLlogic.cs页面

 

[code]

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Text;
using System.IO;

/// <summary>
/// Summary description for BLLLogic
/// </summary>
public class BLLLogic
{
    public BLLLogic()
    {
        //
        // TODO: Add constructor logic here
        //
    }
    /// <summary>
    ///验证用户合法性
    /// </summary>
    /// <param name="userName"></param>
    /// <param name="password"></param>
    /// <returns></returns>
    public bool CheckUserNameAndPassword(string userName, string password)
    {
        DALBase dal = new DALBase();
        string str = dal.CheckUserNameAndPassword(userName, password);
        if (str.Trim() != "")
        {
            return true;
        }
        return false;

    }
    public bool InsertUserInfo(string userName, string password)
    {
        DALBase dal = new DALBase();
        int count = dal.InsertUserInfo(userName, password);
        if (count > 0)
        {
            return true;
        }
        return false;
    }
    public DataSet GetSchemaInfo()
    {
        DataSet ds = new DALBase().GetSchemaInfo();
        return ds;
    }
    public DataSet GetTypeInfo()
    {
        DataSet ds = new DALBase().GetTypeInfo();
        return ds;
    }
    /// <summary>
    /// 检察菜单文本是否存在
    /// </summary>
    /// <param name="fileName"></param>
    /// <returns></returns>
    public bool CheckExistFile(string fileName)
    {

        return File.Exists(HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath + "//" + fileName));
    }
    public void WriteMenuJS()
    {
        string str = GetMenuInfo();
        string path = HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath);
        using (StreamWriter sw = new StreamWriter(path + "//" + "MENU_ITEMS.js"))
        {
            sw.Write(str);
        }

    }
   
    public string GetMenuInfo()
    {
        DataSet ds = new DALBase().GetMenuInfo();
        if (!Comm.CheckDatasetISNULL(ds))
        {
            StringBuilder sb = new StringBuilder(6000);
            sb.Append("var MENU_ITEMS = [");
            DataView dv = ds.Tables[0].DefaultView;
            dv.RowFilter = "nodepid=0";
            string nodeid = "";
            string nodename = "";
            string url = "";
            //i 是计数器 n是项数
            int i = 0, n = 0;         
            foreach (DataRowView dvi in dv)
            {
                n++;
            }
            foreach (DataRowView viewrow in dv)
            {
                i++;
                nodeid = Comm.CheckObjectISNULL(viewrow["nodeID"]);
                nodename = Comm.CheckObjectISNULL(viewrow["nodeName"]);
                url = Comm.CheckObjectISNULL(viewrow["urlPath"]);
                sb.Append(ConcatenateHTMLString(nodeid, nodename, url, ds, i, n));
                GetMenuChilds(Comm.CheckObjectISNULL(viewrow["nodeID"]), ds, sb);
                if (n - i == 0)
                {
                    sb.Append("]");
                }
                else
                {
                    sb.Append("],");
                }

            }

            return sb.Append(" ] ;").ToString();
        }
        else
        {
            return "";
        }

    }
    public void GetMenuChilds(string nodeid, DataSet ds, StringBuilder sb)
    {
        DataView dvTreeData = ds.Tables[0].DefaultView;
        dvTreeData.RowFilter = "nodepid=" + nodeid;
        string nid = "";
        string nodename = "";
        string url = "";
        int i = 0, n = 0;
        foreach (DataRowView dvi in dvTreeData)
        {
            n++;
        }
        foreach (DataRowView viewrow in dvTreeData)
        {
            i++;

            nid = Comm.CheckObjectISNULL(viewrow["nodeID"]);
            nodename = Comm.CheckObjectISNULL(viewrow["nodeName"]);
            url = Comm.CheckObjectISNULL(viewrow["urlPath"]);
            sb.Append(ConcatenateHTMLString(nid, nodename, url, ds, i, n));

            GetMenuChilds(Comm.CheckObjectISNULL(viewrow["nodeID"]), ds, sb);
            if (n - i == 0)
            {
                sb.Append("]");
            }
            else
            {
                sb.Append("],");
            }

        }

    }
    /// <summary>
    /// 拼js串
    /// </summary>
    /// <returns></returns>
    public string ConcatenateHTMLString(string nodeid, string nodename, string url, DataSet ds, int cn, int tn)
    {
        DataView dv = ds.Tables[0].DefaultView;
        dv.RowFilter = "nodepid=" + nodeid;
        int count = 0;
        //判断当前节点下是否还有子项
        foreach (DataRowView viewrow in dv)
        {
            count++;
            break;
        }

        if (count > 0)
        {
            if (url == string.Empty)
            {
                return " [ '" + nodename + "'" + "," + "null " + "," + "null" + ",";
            }
            else
            {
                return " [ '" + nodename + "'" + "," + "'" + url + "'" + "," + "null" + ",";
            }
        }
        else
        {
            if (url == string.Empty)
            {
                return " [ '" + nodename + "'" + "," + "null  ";
            }
            else
            {
                return " [ '" + nodename + "'" + "," + "'" + url +"'";
            }
        }
    }
    /// <summary>
    /// 获取用户信息
    /// </summary>
    /// <param name="currPage">                 当前页数</param>
    /// <param name="count">                       每页显示页数</param>
    /// <param name="userSchema">            要查询的用户名称</param>
    /// <param name="userType">                 要查询的用户类型</param>
    /// <param name="objectName">             要查询的对像名称</param>
    /// <returns>                                             获取用户信息</returns>
    public DataSet GetUserOjbectSchemaInfo(int currPage, int count, string userSchema, string userType, string objectName)
    {
        return new DALBase().GetUserOjbectSchemaInfo(currPage,count,userSchema,userType,objectName);
    }
}

 

[/code]

 

DALBase.cs页面

 

[code]

 

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OracleClient;
using System.Web;
using System.Configuration;


/// <summary>
/// Summary description for DALBase
/// </summary>
public class DALBase
{
   

 public DALBase()
 {
  //
  // TODO: Add constructor logic here
  //
 }
    /// <summary>
    /// 验证用户合法性
    /// </summary>
    /// <param name="userName"></param>
    /// <param name="password"></param>
    /// <returns></returns>
    public string CheckUserNameAndPassword(string userName, string password)
    {
        string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
        OracleConnection conn = new OracleConnection(connstr);
        OracleCommand cmd = new OracleCommand("P_CheckUser", conn);
        cmd.CommandType = System.Data.CommandType.StoredProcedure;

        #region 为cmd参数
        OracleParameter para = new OracleParameter();
        para.ParameterName="UserName";
        para.DbType = System.Data.DbType.String;
        para.Direction = System.Data.ParameterDirection.InputOutput;
        para.Value = userName;
        cmd.Parameters.Add(para);
        cmd.Parameters.Add("Password", System.Data.DbType.String).Value = password;
        #endregion
        try
        {
            userName = "";
            conn.Open();
            cmd.ExecuteScalar();

            userName = cmd.Parameters[0].Value.ToString();
        }
        catch(Exception e)
        {
            throw e;
        }
        finally
        {
            if (conn != null)
            {
                conn.Close();
            }
        }
        return userName;
    }

    /// <summary>
    /// 新加用户
    /// </summary>
    /// <param name="userName"></param>
    /// <param name="password"></param>
    /// <returns></returns>
    public int InsertUserInfo(string userName, string password)
    {
        string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
        OracleConnection conn = new OracleConnection(connstr);
        OracleCommand cmd = new OracleCommand("P_InsertUser", conn);
        cmd.CommandType = System.Data.CommandType.StoredProcedure;

        #region 为cmd参数
        cmd.Parameters.Add("userName", System.Data.DbType.String).Value = userName;
        cmd.Parameters.Add("Password", System.Data.DbType.String).Value = password;
        #endregion
        int count = 0;
        try
        {
            conn.Open();
            count = Convert.ToInt32( cmd.ExecuteOracleScalar());
        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            if (conn != null)
            {
                conn.Close();
            }
        }
        return count>0?1:0;
    }
    public DataSet GetSchemaInfo()
    {
        DataSet ds = new DataSet();
        string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
        OracleConnection conn = new OracleConnection(connstr);
        OracleCommand cmd = new OracleCommand("P_SelectSchema", conn);
        cmd.CommandType = System.Data.CommandType.StoredProcedure;

        cmd.Parameters.Add("mycur", OracleType.Cursor).Direction = ParameterDirection.Output;

        OracleDataAdapter oda = new OracleDataAdapter(cmd);
        try
        {
            oda.Fill(ds);

        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            if (conn != null)
            {
                conn.Close();
            }
        }
        return ds;
    }
    public DataSet GetTypeInfo()
    {
        DataSet ds = new DataSet();
        string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
        OracleConnection conn = new OracleConnection(connstr);
        OracleCommand cmd = new OracleCommand("P_SelectType", conn);

        cmd.Parameters.Add("mycur", OracleType.Cursor).Direction=ParameterDirection.Output;

        cmd.CommandType = System.Data.CommandType.StoredProcedure;
        OracleDataAdapter oda = new OracleDataAdapter(cmd);
        try
        {
            oda.Fill(ds);

        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            if (conn != null)
            {
                conn.Close();
            }
        }
        return ds;
    }
    /// <summary>
    /// 获取一级菜单信息
    /// </summary>
    /// <returns></returns>
    public DataSet GetMenuInfo()
    {
        DataSet ds = new DataSet();
        string connstr = System.Configuration.ConfigurationManager.AppSettings["oracleConnection"];
        OracleConnection conn = new OracleConnection(connstr);
        OracleCommand cmd = new OracleCommand("P_SelectMenuInfo", conn);

        cmd.Parameters.Add("mycur", OracleType.Cursor).Direction = ParameterDirection.Output;

        cmd.CommandType = System.Data.CommandType.StoredProcedure;
        OracleDataAdapter oda = new OracleDataAdapter(cmd);
        try
        {
            oda.Fill(ds);

        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            if (conn != null)
            {
                conn.Close();
            }
        }
        return ds;
    }
     /// <summary>
    /// 获取用户信息
    /// </summary>
    /// <param name="currPage">                 当前页数</param>
    /// <param name="count">                       每页显示页数</param>
    /// <param name="userSchema">            要查询的用户名称</param>
    /// <param name="userType">                 要查询的用户类型</param>
    /// <param name="objectName">             要查询的对像名称</param>
    /// <returns>                                             获取用户信息</returns>
    public DataSet GetUserOjbectSchemaInfo(int currPage, int count, string userSchema, string userType, string objectName)
    {
        DataSet ds= new DataSet();
        string connString = ConfigurationManager.AppSettings["oracleConnection"];
        OracleConnection conn = new OracleConnection(connString);
        OracleCommand cmd = new OracleCommand("P_SelectUserObjectSchemaInfo", conn);
        #region 存储过程参数
        cmd.Parameters.Add("currentPage", DbType.Int32).Value = currPage;
        cmd.Parameters.Add("recount", DbType.Int32).Value = count;
        cmd.Parameters.Add("userSchema", DbType.String).Value = userSchema;
        cmd.Parameters.Add("userType", DbType.String).Value = userType;
        cmd.Parameters.Add("objectName", DbType.String).Value = objectName;
        cmd.Parameters.Add("mycur",OracleType.Cursor).Direction = ParameterDirection.Output;
        #endregion
        cmd.CommandType = CommandType.StoredProcedure;

        OracleDataAdapter oda = new OracleDataAdapter(cmd);
        try
        {
            oda.Fill(ds);

        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            if (conn != null)
            {
                conn.Close();
            }
        }
        return ds;
    }
}

 

[/code]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值