|
导读在前面的文章里,讲了些方法,如果大家仔细体会的其实都还是老的一套方法,根本没有体现面向对象过程编程的思想。并且前面2篇文章的那种方法,代码的重复利用率不高。 我们可以把DDLItem表给... 在前面的文章里,讲了些方法,如果大家仔细体会的其实都还是老的一套方法,根本没有体现面向对象过程编程的思想。并且前面2篇文章的那种方法,代码的重复利用率不高。我们可以把DDLItem表给对象化,把表里的字段当作其属性,我先创建个对象类,类名为DDLItemInfo,代码如下所示: using System; namespace BindDropDownList { /// <summary> /// 主要是把DDLItem表对象化, /// 把表的字段变为属性,可以任意的 /// 获取或设置该属性的值。 /// </summary> public class DDLItemInfo { //定义内部变量 private int _id; private string _ItemName; //定义2重构造函数 public DDLItemInfo(){} public DDLItemInfo( int id, string ItemName ) { _id = id; _ItemName = ItemName; } //定义成员的方法 public int id { get { return _id; } set { _id = value; } } public string ItemName { get { return _ItemName; } set { _ItemName = value; } } } } 然后创建为该表使用的方法的类库,类名DDLItem.cs,代码如下所示: using System; using System.Collections; using System.Data; using System.Data.SqlClient; namespace BindDropDownList { /// <summary> /// 对DDLItem 表的各种SQL操作。 /// </summary> public class DDLItem { public DDLItem(){} //定义数据库连接字串 private const string SQL_CONN_STRING = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]; //定义SQL语句 private const string SQL_SELECT_DDLIIEMS = "select id, ItemName from DDLItem order by id desc"; //构造一个方法来读取所有的DDLItem表里的记录 public IList Get_DDLItems() { //实例化一个可动态增加长度的数组 IList itemList = new ArrayList(); //定义数据库连接 SqlConnection myConn = new SqlConnection( SQL_CONN_STRING ); //定义SQL命令 SqlCommand myCommand = new SqlCommand( SQL_SELECT_DDLIIEMS, myConn ); //打开数据库 myCommand.Connection.Open(); //定义一个SqlDataReader SqlDataReader rdr = myCommand.ExecuteReader(); //开始循环读取记录 while( rdr.Read() ) { //构造一个实例化的DDLItem表对象 DDLItemInfo itemInfo = new DDLItemInfo( rdr.IsDBNull( 0 ) ? 0 : rdr.GetInt32( 0 ), rdr.IsDBNull( 1 ) ? string.Empty : rdr.GetString( 1 ) ); itemList.Add( itemInfo ); } //关闭SqlDataReader和SqlConnection rdr.Close(); myCommand.Connection.Close(); return itemList; } } } 上面就把我们要操作的方法都定义好了,下面就是怎么调用的问题了,再创建一个Aspx的页面,代码如下所示: 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; namespace BindDropDownList { /// <summary> /// Example3 的摘要说明。 /// </summary> public class Example3 : System.Web.UI.Page { protected System.Web.UI.WebControls.DropDownList DropDownList1; protected System.Web.UI.WebControls.Button Button1; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 } #region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Button1.Click += new System.EventHandler(this.Button1_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void Button1_Click(object sender, System.EventArgs e) { //使用DDLItem类的Get_DDLItems方法,取得记录 IList list = new DDLItem().Get_DDLItems(); //判断有没有记录 if( list.Count != 0 ) { //把记录加到DropDownList1上 for( int i = 0 ; i < list.Count; i++ ) { DDLItemInfo itemInfo = ( DDLItemInfo )list[i]; DropDownList1.Items.Add( new ListItem( itemInfo.ItemName, itemInfo.id ) ); } } } } } 这个话,我们在以后管理DDLItem内容时,直接调用Get_DDLItems这个方法就可以列出所有的DDLItem信息,并且一次开发完毕后,对于DDLItem表的结构,通过DDLItemInfo类的属性就能一清二楚的知道,这样也提高效率。 |
温馨提示:喜欢本站的话,请收藏一下本站!