注册 登录
编程论坛 ASP.NET技术论坛

从某数据表中的多个字段提取数据赋值为泛型List的方案???

foshan 发布于 2008-01-11 12:39, 2448 次点击
看到一个例子(见下),是将从某数据表中的多个字段提取数据赋值为泛型List的方法,想了解除此之外,还有什么方法实现同样的功能???谢谢!

/// <summary>
/// Summary description for MilitaryInstallation
/// </summary>
public class AnAthlete
{
    public AnAthlete()
    {
    }

    public AnAthlete(int id, string service, string name, string city, string state, string websiteUrl, double latitude, double longitude)
    {
        _id = id;
        _service = service;
        _name = name;
        _city = city;
        _state = state;
        _websiteUrl = websiteUrl;
        _latitude = latitude;
        _longitude = longitude;
    }
    private int _id;

    public int Id
    {
        get { return _id; }
        set { _id = value; }
    }

    private string _service;

    public string Service
    {
        get { return _service; }
        set { _service = value; }
    }

    private string _name;

    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    private string _city;

    public string City
    {
        get { return _city; }
        set { _city = value; }
    }

    private string _state;

    public string State
    {
        get { return _state; }
        set { _state = value; }
    }

    private string _websiteUrl;

    public string WebsiteUrl
    {
        get { return _websiteUrl; }
        set { _websiteUrl = value; }
    }

    private double _latitude;

    public double Latitude
    {
        get { return _latitude; }
        set { _latitude = value; }
    }

    private double _longitude;

    public double Longitude
    {
        get { return _longitude; }
        set { _longitude = value; }
    }

}

---------------------------------------------------------------

 public List<AnAthlete> GetAthletesByService(string service)
    {
    SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString);

    SqlCommand cmd = new SqlCommand(
            @"SELECT Id, Weight, Name, City, State, WebsiteUrl, Latitude, Longitude
              FROM Athlete
              WHERE (Weight = @Weight)", cn);

    cmd.Parameters.AddWithValue("Weight", service);

    List<AnAthlete> retrievedAthletes = new List<AnAthlete>();

    cn.Open();
    using (SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
    {
        while (dr.Read())
        {
            retrievedAthletes.Add(new AnAthlete(dr.GetInt32(0),
                                                dr.GetString(1),
                                                dr.GetString(2),
                                                dr.GetString(3),
                                                dr.GetString(4),
                                                dr.GetString(5),
                                                dr.GetDouble(6),
                                                dr.GetDouble(7)));
            }
        }
        return retrievedAthletes;
    }
5 回复
#2
bygg2008-01-11 12:53
DataTable 等都可以
#3
1916381412008-01-12 21:36
datagrid datalist datagrid repeater
还有自定义的 datatable.
#4
shenba2008-01-13 09:14
数据访问方式用ibatis的话,定义自己的实体,然后可以返回泛型的IList
#5
hex_maddog2008-01-13 15:47
可以在vs2005里的选项中把运行不安全那个选项钩上先
定义一个类,在定义两个变量,一个是object变量,一个是指针变量
如果要实现一个链式的数组(速度比较快),就让指针对应下个类的地址(下个地址为本地址加上类的长度)
如果要实现一个非链式的,直接把下个类的地址赋给它
把末尾的类的指针变量的值设为第一个类的地址,还能实现循环的数组
#6
hex_maddog2008-01-13 15:53
其实ArrayList HashTable 本身就是派生类,他们的定义应该就和我上面差不多的
1