| .net中如何给数据表实体类赋值的方法 |
|
| |
|
|
今天遇到一个问题,就是数据实体类中如何给属性赋值.因为从数据库中取出来的是一个DataSet如果一个一个给数据实体类中的属性赋值显的非常的笨拙,而且我们的数据表多达24个.在网上搜索了下写出了个简单的方法,代码如下:
首先我们做个实体类
1 public class Class1 2 { 3 private int inttemp; 4 5 public int IntTemp 6 { 7 get { return inttemp; } 8 set { inttemp = value; } 9 } 10 } 11
那我们怎么找到他并赋值呢?
代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Reflection; 5 using System.Data; 6 7 namespace ConsoleApplication1 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Class1 c = new Class1(); 14 /*这里是构造一个DataSet*/ 15 DataSet ds = new DataSet(); 16 DataTable dt = new DataTable(); 17 dt.Columns.Add("IntTemp",SqlDbType.Int.GetType()); 18 DataRow dr = dt.NewRow(); 19 dr["IntTemp"] = 2; 20 dt.Rows.Add(dr); 21 ds.Tables.Add(dt); 22 23 /*这里是重点*/ 24 foreach (DataRow dr1 in ds.Tables[0].Rows) 25 { 26 foreach (DataColumn dc in dr1.Table.Columns) 27 { 28 PropertyInfo pi = c.GetType().GetProperty(dc.ColumnName);//获取根据表的类名创建的实体类属性 29 pi.SetValue(c, dc.Table.Rows[0][0], null);//设置这个属性的值 30 } 31 } 32 Console.Write(c.IntTemp+"\n"); 33 } 34 } 35 36 } 大家可能问这个有什么用?当你按照数据库表的形式简历了一个实体类就可以用这个循环写一个共有的方法专门给不同的实体类的属性赋值,因为pi.SetValue方法的第一个值是object形式的.这样我们就少了很多的麻烦事情.
不知道这个方法对多数据集是否有效率的问题.高手们看了后给我点意见修改下.谢谢了.
 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:佚名 |
录入时间:2007-6-20 17:17:03 |
| 信息来源:不详 |
投稿信箱:itqoo@126.com |
|
|
 |
|
|
|
| 教程录入:itqoo 责任编辑:itqoo |
|
上一个教程: C#根据条件搜索Infopath生成的XML数据
下一个教程: 使用Control Adapters优化Asp.net控件 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |