您的位置:首页 > 数据库

从数据库读出数据动态生成菜单栏

2012-10-20 16:12 405 查看
注:这个是当初水平有限比较初级的,,后来后来就有相对高级点的参考/article/7983348.html



DBUnitly层:

usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data.SqlClient;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Data;
namespaceDBUnitly
{
publicclassDBHelp
{
publicstaticstring_connectionString=ConfigurationManager.AppSettings["connectionString"];//连接数据库
///<summary>
///执行sql语句返回影响的行数
///</summary>
///<paramname="SQLString"></param>
///<returns></returns>
publicstaticintExecuteSql(stringSQLString)
{
using(SqlConnectionconn=newSqlConnection(_connectionString))
{
using(SqlCommandcmd=newSqlCommand(SQLString,conn))
{
try
{
conn.Open();
introws=cmd.ExecuteNonQuery();
returnrows;

}catch(System.Data.SqlClient.SqlExceptione)
{
conn.Close();
throwe;
}
}
}
}
///<summary>
///执行查询语句,返回DataSet
///</summary>
///<paramname="SQLString">查询语句</param>
///<returns>DataSet</returns>
publicstaticDataSetQuery(stringSQLString)
{
using(SqlConnectionconnection=newSqlConnection(_connectionString))
{
DataSetds=newDataSet();
try
{
connection.Open();
SqlDataAdaptercommand=newSqlDataAdapter(SQLString,connection);
command.Fill(ds,"ds");
}
catch(System.Data.SqlClient.SqlExceptionex)
{
thrownewException(ex.Message);
}
returnds;
}
}
}
}

DAL层:

_menuManager类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
namespaceDAL
{
publicclass_menuManager
{
///<summary>
///分页获取数据列表
///</summary>
publicDataSetGetListByPage(stringstrWhere,stringorderby,intstartIndex,intendIndex)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("SELECT*FROM(");
strSql.Append("SELECTROW_NUMBER()OVER(");
if(!string.IsNullOrEmpty(orderby.Trim()))
{
strSql.Append("orderbyT."+orderby);
}
else
{
strSql.Append("orderbyT.menu_iddesc");
}
strSql.Append(")ASRow,T.*from_menuT");
if(!string.IsNullOrEmpty(strWhere.Trim()))
{
strSql.Append("WHERE"+strWhere);
}
strSql.Append(")TT");
strSql.AppendFormat("WHERETT.Rowbetween{0}and{1}",startIndex,endIndex);
returnDBUnitly.DBHelp.Query(strSql.ToString());
}
///<summary>
///获得数据列表
///</summary>
publicDataSetGetList(stringstrWhere)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("selectmenu_id,menu_name");
strSql.Append("FROM_menu");
if(strWhere.Trim()!="")
{
strSql.Append("wheremenu_quanxianin("+strWhere+")");
}
returnDBUnitly.DBHelp.Query(strSql.ToString());
}
}
}
_menuChildrenManager类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
namespaceDAL
{
publicclass_menuChildrenManager
{
///<summary>
///获得数据列表
///</summary>
///<paramname="strWhere"></param>
///<returns></returns>
publicDataSetGetAllList(stringstrWhere)
{
StringBuildersb=newStringBuilder();
sb.Append("selectmc_name");
sb.Append("from_menuChildren");
sb.Append("wheremenu_typein");
if(strWhere.Trim()!="")
{
sb.Append("("+Convert.ToInt32(strWhere)+")");

}
returnDBUnitly.DBHelp.Query(sb.ToString());
//selectmc_namefrom_menuChildrenwheremenu_typein(selectmenu_idfrom_menu);
}
}
}

BLL层:

_menuService类
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
namespaceBLL
{
publicclass_menuService
{
///<summary>
///分页获得数据列表
///</summary>
///<paramname="strWhere"></param>
///<paramname="orderby"></param>
///<paramname="startIndex"></param>
///<paramname="endIndex"></param>
///<returns></returns>
publicDataSetGetListByPage(stringstrWhere,stringorderby,intstartIndex,intendIndex)
{
returnnewDAL._menuManager().GetListByPage(strWhere,orderby,startIndex,endIndex);
}
///<summary>
///获得数据列表
///</summary>
///<paramname="strWhere"></param>
///<returns></returns>
publicDataSetGetList(stringstrWhere)
{
returnnewDAL._menuManager().GetList(strWhere);
}
}
}
_menuChildrenService
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data;
namespaceBLL
{
publicclass_menuChildrenService
{
///<summary>
///获得数据列表
///</summary>
///<paramname="strWhere"></param>
///<returns></returns>
publicDataSetGetAllList(stringstrWhere)
{
returnnewDAL._menuChildrenManager().GetAllList(strWhere);
}
}
}

Test层:

MenuTest.aspx
<body>
<formid="form1"runat="server">
<div>
<asp:MenuID="Menu1"runat="server"Orientation="Horizontal"
DynamicEnableDefaultPopOutImage="False"DynamicVerticalOffset="10"
Height="24px"Width="126px">
<StaticSelectedStyleHorizontalPadding="0px"/>
<StaticMenuItemStyleHorizontalPadding="5px"ForeColor="#3C3C3C"/>
<DynamicMenuStyleHorizontalPadding="0px"/>
<DynamicMenuItemStyleHorizontalPadding="0px"ItemSpacing="3px"ForeColor="#D96C01"/>
<StaticMenuStyleHorizontalPadding="0px"/>
<DynamicHoverStyleForeColor="#3D68A3"/>
<StaticHoverStyleForeColor="#D96C01"/>
</asp:Menu>
</div>
</form>
</body>

.cs文件
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Data;
publicpartialclassMenuTest:System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!IsPostBack)
{
DataTabledt=newBLL._menuService().GetList("0").Tables[0];
for(inti=0;i<dt.Rows.Count;i++)
{
MenuItemmenuNode=newMenuItem();
menuNode.Text=dt.Rows[i]["menu_name"].ToString();//一级菜单栏
menuNode.Value=dt.Rows[i]["menu_id"].ToString();
DataTabledt1=newBLL._menuChildrenService().GetAllList(menuNode.Value).Tables[0];
for(intj=0;j<dt1.Rows.Count;j++)
{
MenuItemmenuChildNode=newMenuItem();
menuChildNode.Text=dt1.Rows[j]["mc_name"].ToString();//二级菜单
menuChildNode.Enabled=true;
menuNode.ChildItems.Add(menuChildNode);//将子菜单放在父菜单下
}
menuNode.Enabled=true;
Menu1.Items.Add(menuNode);
}

}
}
}


有源码:http://download.csdn.net/detail/zhao8912/4667911
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐