深谈使用ADO.NET数据列表达式

开发 后端
表达式也能表现字符串值,例如从ADO.NET数据列中取得姓和名并连接到一起,文章有详细的介绍,希望对大家有帮助。

ADO.NET数据列还是比较常用的,于是我研究了一下表达式也可以通过ADO.NET数据列对象定义,在这里拿出来和大家分享一下,希望对大家有用。作为通过SQL语句计算扩充价格的替代者,ADO.NET数据列可以被定义用于表现扩充价格。在SQL语句和数据列中使用表达式的区别是,如果表达式中的某个字段被修改了,数据列会自动更新表达式所定义的字段,但SQL表达式不会更新数据列。

#T#下面的代码演示了怎样使用SQL语句填充数据集的数据表并建立一个新数据列描述计算表达式,该表达式使用数据集的唯一数据表中的其它字段得到。接着该数据表的默认视图被绑定到ASP.NET的一个叫做grdOrderDetail 的DataGrid控件。这段代码使用订单详细信息建立和填充了一个数据集。接着一个列被添加到该数据集的数据表,用于表现该表达式。该列叫ExtendedPrice,数据类型为浮点型,它的表达式是产品单价和数量列。该表达式能涉及数据表的任意数据列,从当前的数据行中取得值。例如,如果第一行数量为10,单价为7,扩充价格列将使用的值为70。

在计算中表达式可以包括从数据表中其它字段得到的字面值。例如,定义扩充价格的表达式可以稍作改变,使它考虑折扣率:

  1. oDs.Tables["OrderDetail"].Columns.Add("ExtendedPrice",  
  2. typeof(decimal), "(UnitPrice * Quantity) * (1 - Discount)"); 

试着改变UnitPrice、Discount或Quantity数据列的值,结果是与从SQL表达式衍生的列不同,ExtendedPrice数据列也被更新了。该特征对应用程序很重要,特别是在用户能修改购物车,确认改变,然后查看更新后的总价格的情况下。

表达式也可以用于表现其它数据类型,例如逻辑型和字符型值。下面的代码演示了添加一个字段用于显示一个作者是否有折扣:

  1. oDs.Tables["OrderDetail"].Columns.Add("GetsDiscount", typeof(bool),  
  2. "Discount > 0"); 

你能使用AND、OR或NOT条件建立混合表达式来考虑多个条件,这样可以加强前面的表达式。还有一些操作符,包括LIKE和IN也可以在表达式中使用。

表达式也能表现字符串值,例如从数据表中取得姓和名并连接到一起。下面的代码段将ProductName与ProductID连接在一起:

  1. oDs.Tables["OrderDetail"].Columns.Add("stringfield", typeof(string),  
  2. "ProductID + '-' + ProductName"); 


 

责任编辑:田树 来源: 博客
相关推荐

2009-11-04 17:22:30

ADO.NET数据访问

2009-11-12 10:06:01

ADO.NET读取数据

2009-10-29 09:19:59

ADO.NET

2009-12-28 15:11:36

ADO.NET专家

2009-11-04 16:13:18

ADO.NET数据表

2009-11-12 13:26:56

使用ADO.NET参数

2009-11-13 10:31:07

ADO.NET Dat

2010-01-04 13:47:18

ADO.NET数据集

2009-11-11 11:19:57

ADO.NET使用

2009-10-29 10:20:19

ADO.NET使用

2009-12-31 09:18:23

ADO.NET对象模型

2009-11-13 14:22:11

ADO.NET Dat

2009-11-13 10:10:07

2009-12-25 10:25:59

2009-11-13 14:38:45

ADO.NET Dat

2009-08-10 09:41:07

.NET Lambda

2009-12-31 13:50:46

ADO.NET模型

2009-12-21 14:50:47

ADO.NET优化

2009-12-22 15:20:25

ADO.NET功能

2009-12-21 16:53:06

ADO.NET使用说明
点赞
收藏

51CTO技术栈公众号