- 浏览: 2162503 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1878)
- [网站分类]ASP.NET (141)
- [网站分类]C# (80)
- [随笔分类]NET知识库 (80)
- [随笔分类]摘抄文字[非技术] (3)
- [随笔分类]养生保健 (4)
- [网站分类]读书区 (16)
- [随笔分类]赚钱 (7)
- [网站分类].NET新手区 (233)
- [随笔分类]网站 (75)
- [网站分类]企业信息化其他 (4)
- [网站分类]首页候选区 (34)
- [网站分类]转载区 (12)
- [网站分类]SQL Server (16)
- [网站分类]程序人生 (7)
- [网站分类]WinForm (2)
- [随笔分类]错误集 (12)
- [网站分类]JavaScript (3)
- [随笔分类]小说九鼎记 (69)
- [随笔分类]技术文章 (15)
- [网站分类]求职面试 (3)
- [网站分类]其他技术区 (6)
- [网站分类]非技术区 (10)
- [发布至博客园首页] (5)
- [网站分类]jQuery (6)
- [网站分类].NET精华区 (6)
- [网站分类]Html/Css (10)
- [随笔分类]加速及SEO (10)
- [网站分类]Google开发 (4)
- [随笔分类]旅游备注 (2)
- [网站分类]架构设计 (3)
- [网站分类]Linux (23)
- [随笔分类]重要注册 (3)
- [随笔分类]Linux+PHP (10)
- [网站分类]PHP (11)
- [网站分类]VS2010 (2)
- [网站分类]CLR (1)
- [网站分类]C++ (1)
- [网站分类]ASP.NET MVC (2)
- [网站分类]项目与团队管理 (1)
- [随笔分类]个人总结 (1)
- [随笔分类]问题集 (3)
- [网站分类]代码与软件发布 (1)
- [网站分类]Android开发 (1)
- [网站分类]MySQL (1)
- [网站分类]开源研究 (6)
- ddd (0)
- 好久没写blog了 (0)
- sqlserver (2)
最新评论
-
JamesLiuX:
博主,能组个队么,我是Freelancer新手。
Freelancer.com(原GAF – GetAFreelancer)帐户里的钱如何取出? -
yw10260609:
我认为在混淆前,最好把相关代码备份一下比较好,不然项目完成后, ...
DotFuscator 小记 -
日月葬花魂:
大哥 能 加我个QQ 交流一下嘛 ?51264722 我Q ...
web应用程序和Web网站区别 -
iaimg:
我想问下嵌入delphi写的程序总是出现窗体后面感觉有个主窗体 ...
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部 -
iaimg:
代码地址下不了啊!
C#自定义控件:WinForm将其它应用程序窗体嵌入自己内部
关于集合类的做法!
类工程:
using System;
using System.Data;
namespace MyProduct.Employee
{
/// <summary>
/// Employee的实体类
/// </summary>
public class EmployeeEntity
{
private int mEmployeeID;
private string mLastName;
private string mFirstName;
public int EmployeeID
{
get { return mEmployeeID; }
set { mEmployeeID = value; }
}
public string LastName
{
get { return mLastName; }
set { mLastName = value; }
}
public string FirstName
{
get { return mFirstName; }
set { mFirstName = value; }
}
public EmployeeEntity()
{
}
/// <summary>
/// 构造函数,给实体类赋值
/// </summary>
/// <param name="pDR">DataRow</param>
public EmployeeEntity(DataRow pDR)
{
Fill(pDR);
}
/// <summary>
/// 给实体类赋值
/// </summary>
/// <param name="pDR">DataRow</param>
public void Fill(DataRow pDR)
{
foreach( System.Reflection.PropertyInfo pi in this.GetType().GetProperties())
{
if (pi.CanWrite)
{
try
{
if (pDR[ pi.Name ] != null && !pDR.IsNull( pi.Name ) )
{
pi.Setvalue(this, pDR[ pi.Name ], null);
}
else
{
pi.Setvalue(this, null, null);
}
}
catch
{
pi.Setvalue(this, null, null);
}
}
}
}
}
/// <summary>
/// Employee的集合类
/// </summary>
public class EmployeeList : System.Collections.CollectionBase
{
public EmployeeList()
{
}
/// <summary>
/// 构造函数,给集合类赋值
/// </summary>
/// <param name="pDT">DataTable</param>
public EmployeeList(DataTable pDT)
{
Fill(pDT);
}
/// <summary>
/// 给集合类赋值
/// </summary>
/// <param name="pDT">DataTable</param>
public void Fill(DataTable pDT)
{
foreach(DataRow pDR in pDT.Rows)
{
this.InnerList.Add( new EmployeeEntity( pDR ) );
}
}
/// <summary>
/// 索引
/// </summary>
public virtual EmployeeEntity this[int Index]
{
get
{
return (EmployeeEntity)this.List[Index];
}
}
/// <summary>
/// 添加
/// </summary>
/// <param name="pEmp">实体类</param>
public virtual void Add(EmployeeEntity pEmp)
{
this.List.Add(pEmp);
}
/// <summary>
/// 删除
/// </summary>
/// <param name="Index">index</param>
public virtual void Remove(int Index)
{
this.List.RemoveAt(Index);
}
}
/// <summary>
/// Employee业务类
/// </summary>
public class EmployeeRule
{
/// <summary>
/// 获取所有
/// </summary>
/// <returns></returns>
public EmployeeList GetAllEmployees()
{
string sql;
sql="select * from employees";
DataTable pDT=ExeForDtl(sql);
EmployeeList emplist=new EmployeeList();
emplist.Fill(pDT);
return emplist;
}
/// <summary>
/// 获取一个
/// </summary>
/// <param name="pEmployeeID"></param>
/// <returns></returns>
public EmployeeEntity GetOneEmployee(int pEmployeeID)
{
string sql;
sql="select * from employees where employeeid="+pEmployeeID;
DataTable pDT=new DataTable();
pDT=ExeForDtl(sql);
if(pDT.Rows.Count>0)
{
return new EmployeeEntity(pDT.Rows[0]);
}
else
{
return null;
}
}
}
}
Web工程:
这里的Web工程说明了怎样去调用我们写的集合类。
1。在DataGrid中使用集合类
直接绑定:
EmployeeRule empRule=new EmployeeRule();
DataGrid1.DataSource=empRule.GetAllEmployees();
DataGrid1.DataBind();
手工添加绑定:
EmployeeEntity emp=new EmployeeEntity();
emp.EmployeeID=10;
emp.FirstName="mike";
emp.LastName="daoson";
EmployeeList empList=new EmployeeList();
empList.Add(emp);
DataGrid1.DataSource=empList;
DataGrid1.DataBind();
2。给文本框赋值
EmployeeEntity emp=new EmployeeEntity();
emp=empRule.GetOneEmployee(1);
txtEmployeeID.Text=emp.EmployeeID.ToString();
txtFirstName.Text=emp.FirstName;
txtLastName.Text=emp.LastName;
下面讲一下此种方法的优缺点:
优点:
1。通过反射,循环给属性赋值,省去了给属性赋值的大量工作量
2。集合类可以直接绑定到DataGrid中
3。自己如果想构造一个虚拟的DataTable,可以通过集合类来做
4。这种方法可以用foreach做循环来检索出他的实体类
5。这里可以直接把datarow赋给实体类,也可以给实体类手工赋值
缺点:
1。数据库中的字段名必须要和实体类中的属性相一致
2。如果是多个表关联,那么集合类就不能绑定到DataGrid
发表评论
-
常用Web Service汇总(天气预报、时刻表等)
2010-07-15 23:10 939下面总结了一些常用的Web Service,是平时乱逛时收集的 ... -
常用Web Service汇总(天气预报、时刻表等)
2010-07-15 23:10 843下面总结了一些常用的Web Service,是平时乱逛时收集的 ... -
读blog小记
2009-11-06 10:13 7511.Google Books开始收录更多杂志,全部内容都可浏览 ... -
.NET 产品版权保护方案 (.NET源码加密保护)
2009-12-28 15:18 974说明:你希望自己用.net ... -
[转]CTO谈豆瓣网和校内网技术架构变迁
2009-12-29 11:05 980<!--done--> 豆瓣网CTO洪强 ... -
iframe框架页面实现自适应高度解决方案
2010-01-07 19:24 1042经常会有父页面需要通过iframe嵌入另一个子页面,又要适时根 ... -
数据采集基类[转]
2010-01-12 18:01 841using System;using System.Data; ... -
.NET牛人应该知道些什么(转)?
2010-01-13 10:52 865何一个使用.NET的人 描述线程与进程的区别? 什么是Wi ... -
cuteEditor 配置
2010-01-13 23:54 15341、拷贝文件 (1)将CuteEditor、Bin文件夹下 ... -
纯CSS星级评价
2010-01-14 16:37 1175做一个星级评价的功能不是很难,但是要单纯用CSS写估计就 ... -
关于伪静态和真静态的一点心得
2010-01-16 23:30 12131.关于伪静态的用处 ... -
认证,授权2
2010-01-18 10:45 911以前对这部分一直糊涂着,总算理理清楚了包名:System.Se ... -
关于集合类的做法示例 实体类赋值 cnblogs
2010-01-22 10:31 956关于集合类的做法 ... -
无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
2010-01-29 14:46 674使用Visual Studio 2005(Visu ... -
Godaddy自带免费10G空间开通完全教程
2010-01-29 23:56 1072在Godaddy注册的域名都会自带一个免费的10G空间,虽然有 ... -
无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
2010-01-29 14:46 864使用Visual Studio 2005(Visu ... -
Godaddy自带免费10G空间开通完全教程
2010-01-29 23:56 691在Godaddy注册的域名都会自带一个免费的10G空间,虽然有 ... -
关于伪静态和真静态的一点心得
2010-01-16 23:30 7971.关于伪静态的用处 ... -
认证,授权2
2010-01-18 10:45 849以前对这部分一直糊涂着,总算理理清楚了包名:System.Se ... -
无法在Web服务器上启动调试。与Web服务器通信时出现身份验证错误
2010-01-29 14:46 1076使用Visual Studio 2005(Visu ...
相关推荐
《Windows Live Writer CNBlogs CodeHighlighter 插件详解》 Windows Live Writer 是微软推出的一款离线博客编辑器,它允许用户在本地环境中撰写博客文章,然后发布到各种支持的博客平台。对于程序员或者技术博主而...
关于Cnblogs是一个针对Cnblogs平台的介绍性资源,主要涵盖了Cnblogs的基本信息、功能特点以及如何在该平台上进行博客创作与分享的相关知识。Cnblogs是中国知名的程序员博客平台,为开发者提供了丰富的博客发布、管理...
工具同时提供帮助文档和大量的示例源码(如ECG.Demo等),用VS2005打开每个Demo文件解决方案文件(.sln)即可看到源代码,一些示例以对应数据库自带的示例库为例介绍的(如Oracle)。详见安装后文件和工具帮助. 最新版...
描述中的链接指向了博客文章“**http://www.cnblogs.com/springxie/p/7715922.html**”,该文章可能提供了具体的示例代码和详细步骤,包括如何处理身份验证、错误处理和传输安全等内容。由于没有实际访问链接,这里...
【标题】:“cnblogs看到的富文本编辑器” 在IT领域,富文本编辑器是一种用于创建和编辑含有格式化文本的应用程序,它允许用户在网页、博客、文档编辑等场景中进行文字处理,并能直接预览所见即所得的效果。在本...
万一(cnblogs)不带评论.chm
Spring Web Flow 2.0 购物车示例,资源来自http://www.cnblogs.com/xwdreamer/archive/2011/11/10/2296939.html.建议对照文章学习
标题 "cnblogs:cnblogs文章" 暗示了我们关注的是在知名中文博客平台Cnblogs上发布的文章,这通常涵盖了各种IT技术主题。在这个特定的案例中,描述提到了"Macbook"和"Python",这表明讨论可能集中在使用Macbook进行...
.NET DevExpress的PivotGridControl使用示例,包含多维数据使用,详细说明可参照我的Blog:http://www.cnblogs.com/FreeDong/archive/2013/01/09/2853797.html
文章https://www.cnblogs.com/lifang-biz/p/11770299.html的源码包。 关于安卓串口开发,这篇文章写的比较明白: ...但是用这个方案代码会报错: ...示例源码中,修改了上述问题,并提供演示示例,可正常运行。
Spring Cloud Config 是一个用于管理应用配置的微服务框架,它允许开发者在开发、测试和生产环境中,以集中化、外部化的方式管理应用的...通过上述的代码示例和工作原理,你应该能更好地理解如何在实际项目中使用它。
【标题】:“cnblogs发帖工具” 在IT领域,尤其是对于博客作者和程序员而言,`cnblogs` 是一个非常受欢迎的平台,用于分享技术文章、心得体验和代码实践。为了方便用户更高效地发布内容,有人开发了一款名为...
CnBlogs_Com用到的CSS控制的代码折叠! 值得下载看看!资源免费,大家分享!! 更多免费资源 http://ynsky.download.csdn.net/
这个示例中的博客文章(http://www.cnblogs.com/94pm/p/6819812.html)会提供更详细的实现细节和技术点,包括如何处理视图的加载、如何集成DI框架以及如何处理插件的生命周期事件等。通过阅读该文章,开发者可以深入...
hexo-migrator-cnblogs Hexo 的 cnblogs 迁移器插件如何使用安装模块: npm install hexo-fs npm install hexo-migrator-cnblogs 转到您的 hexo 文件夹,然后执行以下命令: hexo migrate cnblogs < username> 由于...
工具来源,http://www.cnblogs.com/NieXiaoHui/p/6100895.html#undefined,我只是一个搬运工。 显示效果如下: public class DiseaseDoctors { /** * 病种id */ private String id; /** * 医院id */ ...
Android下Aidl的使用,详细请参见博客:http://www.cnblogs.com/plokmju/p/android_Service_aidl_NormalType.html 和 http://www.cnblogs.com/plokmju/p/android_Service_aidl_CustomType.html
RedisSimpleTest.rar 为示例工程 源码 和相应的jar都在里面 参考地址:**一定要看** http://www.cnblogs.com/kkgreen/archive/2011/11/09/2243554.html -----服务器端的配置说明-------- redis-server.exe:...
例如,提供的参考链接(https://www.cnblogs.com/yxysuanfa/p/6818736.html)就是一个实际操作的示例,可以帮助理解数据全量增量转换的过程。 9. **实践与调试**: - Kettle提供了图形化的界面,便于设计和调试...
在这个示例工程中,可能有一个名为`ChartRealTimeShow.cs`的主要类,其中包含了窗体的定义和上述的定时器处理逻辑。`Series[0]`表示图表的第一个数据系列,`AddY()`方法用于在Y轴上添加一个新的数据点。 为了使图表...