zoukankan      html  css  js  c++  java
  • treevew

    数据库创建实体类:

     public int NodeId { get; set; }

        public string DisplayName { get; set; }

        public string NodeURL { get; set; }

        public int DisplayOrder { get; set; }

        public int ParentNodeId { get; set; }

    引入SQLhelp类:

    public abstract class SqlHelper
    {

    //Database connection strings
    public static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["office"].ConnectionString;

    #region ExecuteNonQuery
    /// <summary>
    /// 执行sql命令
    /// </summary>
    /// <param name="connectionString"></param>
    /// <param name="commandType"></param>
    /// <param name="commandText">sql语句/参数化sql语句/存储过程名</param>
    /// <param name="commandParameters"></param>
    /// <returns>受影响的行数</returns>
    public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
    {

    SqlCommand cmd = new SqlCommand();

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
    PrepareCommand(cmd, commandType, conn, commandText, commandParameters);
    int val = cmd.ExecuteNonQuery();

    return val;
    }
    }

    /// <summary>
    /// 执行Sql Server存储过程
    /// </summary>
    /// <param name="connectionString"></param>
    /// <param name="spName">存储过程名</param>
    /// <param name="parameterValues"></param>
    /// <returns>受影响的行数</returns>
    public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues)
    {

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
    SqlCommand cmd = new SqlCommand();

    PrepareCommand(cmd, conn, spName, parameterValues);
    int val = cmd.ExecuteNonQuery();

    return val;
    }
    }
    #endregion

    #region ExecuteReader
    /// <summary>
    /// 执行sql命令
    /// </summary>
    /// <param name="connectionString"></param>
    /// <param name="commandType"></param>
    /// <param name="commandText"></param>
    /// <param name="commandParameters"></param>
    /// <returns>SqlDataReader 对象</returns>
    public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
    {

    SqlConnection conn = new SqlConnection(connectionString);
    try
    {
    SqlCommand cmd = new SqlCommand();
    PrepareCommand(cmd, commandType, conn, commandText, commandParameters);
    SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

    return rdr;
    }
    catch
    {
    conn.Close();
    throw;
    }
    }

    public static SqlDataReader ExecuteReader(string connectionString, string spName, params object[] parameterValues)
    {
    SqlConnection conn = new SqlConnection(connectionString);
    try
    {
    SqlCommand cmd = new SqlCommand();

    PrepareCommand(cmd, conn, spName, parameterValues);
    SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

    return rdr;
    }
    catch
    {
    conn.Close();
    throw;
    }

    }
    #endregion

    #region ExecuteDataset


    public static DataSet ExecuteDataset(string connectionString, string spName, params object[] parameterValues)
    {
    using (SqlConnection conn = new SqlConnection(connectionString))
    {
    SqlCommand cmd = new SqlCommand();

    PrepareCommand(cmd, conn, spName, parameterValues);

    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
    {
    DataSet ds = new DataSet();

    da.Fill(ds);

    return ds;
    }
    }
    }


    public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
    {
    using (SqlConnection conn = new SqlConnection(connectionString))
    {

    SqlCommand cmd = new SqlCommand();

    PrepareCommand(cmd, commandType, conn, commandText, commandParameters);
    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
    {
    DataSet ds = new DataSet();

    da.Fill(ds);

    return ds;
    }
    }
    }

    #endregion

    #region ExecuteScalar
    /// <summary>
    /// 执行Sql 语句
    /// </summary>
    /// <param name="connectionString">连接字符串</param>
    /// <param name="spName">Sql 语句/参数化的sql语句</param>
    /// <param name="parameterValues">参数</param>
    /// <returns>执行结果对象</returns>
    public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
    {
    SqlCommand cmd = new SqlCommand();

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
    PrepareCommand(cmd, commandType, conn, commandText, commandParameters);
    object val = cmd.ExecuteScalar();

    return val;
    }
    }

    /// <summary>
    /// 执行存储过程
    /// </summary>
    /// <param name="connectionString">连接字符串</param>
    /// <param name="spName">存储过程名</param>
    /// <param name="parameterValues">存储过程参数</param>
    /// <returns>执行结果对象</returns>
    public static object ExecuteScalar(string connectionString, string spName, params object[] parameterValues)
    {
    SqlCommand cmd = new SqlCommand();

    using (SqlConnection conn = new SqlConnection(connectionString))
    {
    PrepareCommand(cmd, conn, spName, parameterValues);
    object val = cmd.ExecuteScalar();

    return val;
    }
    }


    #endregion

    #region Private Method
    /// <summary>
    /// 设置一个等待执行的SqlCommand对象
    /// </summary>
    /// <param name="cmd">SqlCommand 对象,不允许空对象</param>
    /// <param name="conn">SqlConnection 对象,不允许空对象</param>
    /// <param name="commandText">Sql 语句</param>
    /// <param name="cmdParms">SqlParameters 对象,允许为空对象</param>
    private static void PrepareCommand(SqlCommand cmd, CommandType commandType, SqlConnection conn, string commandText, SqlParameter[] cmdParms)
    {
    //打开连接
    if (conn.State != ConnectionState.Open)
    conn.Open();

    //设置SqlCommand对象
    cmd.Connection = conn;
    cmd.CommandText = commandText;
    cmd.CommandType = commandType;

    if (cmdParms != null)
    {
    foreach (SqlParameter parm in cmdParms)
    cmd.Parameters.Add(parm);
    }
    }

    /// <summary>
    /// 设置一个等待执行存储过程的SqlCommand对象
    /// </summary>
    /// <param name="cmd">SqlCommand 对象,不允许空对象</param>
    /// <param name="conn">SqlConnection 对象,不允许空对象</param>
    /// <param name="spName">Sql 语句</param>
    /// <param name="parameterValues">不定个数的存储过程参数,允许为空</param>
    private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, string spName, params object[] parameterValues)
    {
    //打开连接
    if (conn.State != ConnectionState.Open)
    conn.Open();

    //设置SqlCommand对象
    cmd.Connection = conn;
    cmd.CommandText = spName;
    cmd.CommandType = CommandType.StoredProcedure;

    //获取存储过程的参数
    SqlCommandBuilder.DeriveParameters(cmd);

    //移除Return_Value 参数
    cmd.Parameters.RemoveAt(0);

    //设置参数值
    if (parameterValues != null)
    {
    for (int i = 0; i < cmd.Parameters.Count; i++)
    {
    cmd.Parameters[i].Value = parameterValues[i];

    }
    }
    }
    #endregion


    }

    web里面sql连接:

    <connectionStrings>
      <add 
        name="NorthwindConnectionString" 
        connectionString="Data Source=serverName;Initial 
        Catalog=Northwind;Persist Security Info=True;User 
        ID=userName;Password=password"
        providerName="System.Data.SqlClient"
      />
    </connectionStrings>

    后台代码:

    //定义泛型集合,作用把数据读取出来放到里面

    private List<SysFun> listSysFun=new List<SysFun>();//SysFun是数据库实体类的名字

    写个方法:

      //方法读取数据库中的数据
        private void LoadAllMenu()
        {
            string sqlStr = "select * from [SysFun] orde by [DisplayOrder] ASC";
            DataSet ds = SqlHelper.ExecuteDataset(SqlHelper.ConnectionString, CommandType.Text, sqlStr);
            foreach (DataRow dr in ds.Tables[0].Rows)//随换读取数据放到泛型集合sysfun中
            {
                SysFun sysfun = new SysFun();
                sysfun.DisplayName = dr["DisplayName"].ToString();
                sysfun.DisplayOrder = (int)dr["DisplayOrder"];
                sysfun.NodeId = (int)dr["NodeId"];
                sysfun.NodeURL = dr["NodeURL"].ToString();
                sysfun.ParentNodeId = (int)dr["ParentNodeId"];
    
                listSysFun.Add(sysfun);
            }
        }

    在Page_Load事件中添加:

      protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                //读取数据到泛型集合当中
                LoadAllMenu();
                //设置根节点
                TreeNode root = new TreeNode("后台管理");
                root.Value = "0";
                this.tvMenu.Nodes.Add(root);
                //绑定子节点
                InitTreeByList(root);
            }
        }

    写个递归方法读取子节点数据:

       private void InitTreeByList(TreeNode tn)
        {
         
            foreach (SysFun sf in listSysFun)
            {
                if (sf.ParentNodeId.ToString() == tn.Value)
                {
                    TreeNode temp = new TreeNode();
                 
                    temp.Value = sf.NodeId.ToString();
                    temp.Text = sf.DisplayName.ToString();
                    temp.NavigateUrl = sf.NodeURL.ToString();
                    tn.ChildNodes.Add(temp);//添加进去
                    InitTreeByList(temp);//进行递归
                }
            }
        }

  • 相关阅读:
    iOS中多线程的实现方案
    初识多线程
    《文献管理与信息分析》第一讲学习总结
    《构建之法》第一章读书摘要
    Total Commander的初次体验
    学习《深入理解计算机系统》第一章摘要
    Vim编辑器的学习
    关于《文献管理与信息分析》的一些问题
    阅读《构建之法》后所产生的问题
    阅读《深入理解计算机系统(第三版)》产生的一些疑惑和困惑
  • 原文地址:https://www.cnblogs.com/914556495wxkj/p/3462440.html
Copyright © 2011-2022 走看看