男人的小金库藏在哪里?——公共数据集Model

 

你有没有小金库,我就不问了,问一下,你的小金库藏在哪里吧?网上有个人,估计是女人,总结了一下并附上个安全系数:

1. 办公室抽屉―― 保险系数☆☆

2. 专业书内――― 保险系数☆☆☆

3. 内裤荷包――― 保险系数☆☆☆

4. 借给朋友――― 保险系数☆☆☆

5. 存在银行――― 保险系数☆☆☆☆

象黄宏那个,又是藏在盆里、藏在桶里、藏在鞋里、藏在袜子里的,档次太低,咱就不提了

什么,你问我有没有小金库?

笑而不答是真君子哈

我只是喜欢一句话:“大隐隐于市,小隐隐于野”。熟视无睹是人性的共同弱点,眼皮子底下的地方,才是盲区。

我口袋里很少超过100 块钱,老婆给,我都不要。前两天,单位逼着让我孝敬郭美美50 块钱,一模口袋,楞没掏出来,标准的大丈夫哈……

我没事儿喜欢炒炒股,就是放哪儿,涨跌,随它了,很少看的……

别瞎说哈,哪儿,不是小金库……

现在,我们的问题是,你从数据库查询出来的数据,放在哪儿?

你想起了王顾左右而言他?别瞎闹了,我们这是在CSDN,程序员的网上家园哈,不言程序言什么??给你看下程序运行效果,打打岔:

我们前面,已经能从数据库中查询,获得一个SqlDataReader 了,这个SqlDataReader 可是一直处于连接状态的,它里面的数据,就好象我们在ATM 里看到的钱一样(掌嘴,怎么又提这东西),你总不能捧着ATM 到处走吧?你总得找个地方放吧?

别和我提DataSet ,那东西,档次太低。我们自己为数据库量身定制一个小金库吧(再掌嘴 ):

一、解决方案中添加类库项目Model

二、Model 中添加类CategoryInfo.cs ,代码如下:

using System;
using System.Collections.Generic;
using System.Text;

namespace WestGarden.Model
{
    public class CategoryInfo
    {
        private string categoryid;
        private string name;
        private string descn;

        public CategoryInfo() { }

        public CategoryInfo(string categoryid, string name, string descn)
        {
            this.categoryid = categoryid;
            this.name = name;
            this.descn = descn;
        }

        public string CategoryId
        {
            get { return categoryid; }
        }
        public string Name
        {
            get { return name; }
        }
        public string Descn
        {
            get { return descn; }
        }
    }
}

我们前面提到,类是变量与函数的封装,这是通常情况常见的情况也有这样的,里面封装的主要是变量,附带几行代码,是方便操作这几个变量的。这个类,主要是用来存放数据的,在一个项目里,通常,Model 里会有几个这样的类,所以,我把这个Model 叫做数据集,这一点,您就别拍我了,有的时候,我是很固执的…..

值得注意的是,这个类,只有三个变量,直接对应着分类表中的三个字段,也就是说,它只能存放一行数据,如果我们想存放几行,一个表格的数据,怎么办呢?

看看我们怎么样简单一点地使用这个类吧:

三、Web 中添加引用→项目→ModelDefualt,aspx.cs 中添加 using WestGarden.Model;代码如下:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections.Generic;
using WestGarden.Model;

namespace WestGarden.Web
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            IList<CategoryInfo> catogories = new List<CategoryInfo>();

            String connectionString = ConfigurationManager.ConnectionStrings["NetShopConnString"].ConnectionString;

            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = connectionString;

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "SELECT * FROM Category";

            conn.Open();

            SqlDataReader rdr = cmd.ExecuteReader();
            while (rdr.Read())
            {
                CategoryInfo category=new CategoryInfo(rdr.GetString(0), rdr.GetString(1), rdr.GetString(2));
                catogories.Add(category);
            }

            rdr.Close();
            conn.Close();

            ddlCategories.DataSource = catogories;
            ddlCategories.DataTextField = "Name";
            ddlCategories.DataValueField = "CategoryId";
            ddlCategories.DataBind();
        }
    }
}

注意里面的这句: IList <CategoryInfo > catogories =new List <CategoryInfo >();

这个,我们简单理解一下吧,这是一个列表,一个类的列表,前面我们做的CategoryInfo.cs 类的列表,它里面的一项,就是一个CategoryInfo 类,你可以使用它的方法Add() ,一项一项地把我们从SqlDataReader 中读取的每一行,放在CategoryInfo 类中的数据,附加上去。从而形成一个表格。

注意这个由一个一个CategoryInfo.cs 类构成的列表,new 以后,交给的是一个IList 指针,叫句柄、叫地址,随便你了,你们都知道,我这个人,很随便的……

这个IList 是一个接口,你想深入了解这个IList 接口,可以去查相关资料,也可以在我后面的内容是找到一些稍微详细一点的解释。

这个IList 接口指针,包指向的表格数据的内容,就可以直接绑定到我们的下拉列表框上去了,想显示什么内容,您随意……

版权所有©2012,欢迎转载,转载请注明出处.更多文章请参阅博客http://blog.csdn.com/yousuosi

猜你喜欢

转载自webzixue.iteye.com/blog/1677247