在前面的文章里,讲了些方法,如果大家仔细体会的其实都还是老的一套方法,根本没有体现面向对象过程编程的思想。并且前面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.WebControl