小弟刚做asp.net开发
想问一下
我在数据库层查询数据库
查出来的记录集是使用DataReader,DataSet,Table,还是生成一个与数据库字段一样的类的数组或者其他别的方法返回给其他层处理呢?
请各位大哥大姐指点一下最好能消息说说优缺点
优先次序 效率->安全->大众化
想问一下
我在数据库层查询数据库
查出来的记录集是使用DataReader,DataSet,Table,还是生成一个与数据库字段一样的类的数组或者其他别的方法返回给其他层处理呢?
请各位大哥大姐指点一下最好能消息说说优缺点
优先次序 效率->安全->大众化
解决方案 »
- jquery dialog问题
- Accordion1控件点击展开后,点击旗下的链接到新的页面,如何保持其展开的状态保持不变?
- 不同服务器按钮调用同一个javascript方法报错
- MSXML2 xmlhttp Post发送的问题
- crystal report 9.2.2升级和ce10下载问题
- web开发者的悲惨遭遇
- 我想通过选择修改oledbdataadapter的SelectCommand来选择不同class_no的货物,怎么不行呢
- 急,这样的SQL语句怎么写.感觉有点复杂
- 为什么我的 .NET Framework安装不上?
- 巨难办的问题!!!佳音~等候中……
- 很简单的正则式,但偶不会
- ListBox 取得多选的值和如何设定多个默认值
==========================
DataReader效率要比DataSet高.
因为: DataReader每次只返回一条记录,通过维持连接返回多次;
而DataSet一次性全部返回所有的数据.
使用场合:
DataReader适用于只返回一条记录时经常用.例如,只想通过某个参数查询单值时用到
DataSet适用于返回较大数据集时用.
=========================
以上引用:ChengKing在C#中的发言。
http://bbs.51js.com/viewthread.php?tid=14818&highlight=DataReader
建一Dal库和一Model库如model库建一ClassModel using System;
namespace Picture.Model
{
/// <summary>
/// 实体类ClassModel 。(属性说明自动提取数据库字段的描述信息)
/// </summary>
public class ClassModel
{
public ClassModel()
{ }
#region Model
private int _id;
private string _name;
private bool _state;
private string _summary;
private DateTime _add_time;
private int _topic_count;
private string _subclass;
/// <summary>
/// 类别编号
/// </summary>
public int id
{
set { _id = value; }
get { return _id; }
}
/// <summary>
/// 类别名称
/// </summary>
public string name
{
set { _name = value; }
get { return _name; }
}
/// <summary>
/// 是否对外开放
/// </summary>
public bool state
{
set { _state = value; }
get { return _state; }
}
/// <summary>
/// 简介
/// </summary>
public string summary
{
set { _summary = value; }
get { return _summary; }
}
/// <summary>
///
/// </summary>
public DateTime add_time
{
set { _add_time = value; }
get { return _add_time; }
}
/// <summary>
/// 类别下的主题数
/// </summary>
public int topic_count
{
set { _topic_count = value; }
get { return _topic_count; }
}
/// <summary>
/// 简介
/// </summary>
public string subclass
{
set { _subclass = value; }
get { return _subclass; }
} #endregion Model }
}Dal库里建一方法using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using Picture.Model;namespace Picture.Da
{
public class ClassDal
{ #region Class_List
/// <summary>
/// 获得维护列表
/// </summary>
public static ArrayList Class_List()
{
ArrayList classes = new ArrayList();
SqlDataReader dr = null;
Database.RunProc("Class_list", out dr);
try
{ while (dr.Read())
{
ClassModel classification = new ClassModel();
classification.id = (int)dr["id"];
classification.name = (string)dr["name"];
classification.state = (bool)dr["state"];
classification.summary = dr["summary"].ToString();
classification.add_time = (DateTime)dr["add_time"];
classification.topic_count = (int)dr["topic_count"];
classification.subclass = dr["subclass"].ToString();
classes.Add(classification);
}
}
finally
{
dr.Close();
}
return classes;
}
}
}表示层
再引用命名空间
using Picture.Model;
using Picture.Da;就可以在方法里引用ClassDal.Class_List方法了
关键是看你用在哪了,上楼说的挺好的
但是把结构破坏了对以后的维护扩展没有影响吗?
而且把结构大乱别人看你的代码就不容易看懂吧楼上hy_lihuan 大哥说的很对
我就是在想学会编程呀所以请教大家一些经验之谈
既然你说到这了就给点指点吧
程序的效率和框架结构上的经验能分享点吗~