时间:2021-05-26
Microsoft SQL Server里有一种computed columns列.这种列的值是通过一个表达式来计算,而表达式引用的是同一张表的其它列的值.打个比方,有一张ServiceLog表,其包含了ServicePerformed, EmployeeID, Rate, Duration等列. 虽然我们可以在一个web页面或其它什么界面里计算每笔服务的费用(也就是 比率 rate乘以时间段duration),不过我们也可以手动向ServiceLog表添加一个 AmountDue列以反映该信息.我们可以将该列创建为一个普通列,只是任何时候当Rate 或 Duration列的值发生改变时需要更新AmountDue列的值.一个比较好的办法是将AmountDue创建成一个computed column 列,其使用的表达式为 Rate * Duration. 这样,当在一个查询里引用该列时SQL Server就可以自动的计算AmountDue列的值.
由于computed column列的值是由表达式决定的,所以这种列是只读的,并且不能在INSERT 或 UPDATE statements里对其赋值.然而,对使用ad-hoc SQL statements的TableAdapter来说,如果主查询里引用了computed column列,那么自动生成的INSERT 和 UPDATE statements也会自动的引用computed column列.所以,我们必须更新TableAdapter的 INSERT 和 UPDATE 查询,以及InsertCommand 和 UpdateCommand属性,以删除对任何computed column列的引用.
如果在使用 ad-hoc SQL statements的TableAdapter里使用computed columns的话,我们要面临的挑战之一便是,每当完成TableAdapte设置向导时,TableAdapter的 INSERT 和 UPDATE查询都会自动的生成,又再一次的自动引用computed column列.不过如果TableAdapters使用存储过程的话,就不会出现这个问题.
在本文,我们将向Northwind数据库的Suppliers表添加一个computed column列,然后相应地创建一个TableAdapter来处理该表以及该computed column列.我们将在TableAdapter里使用存储过程而不是ad-hoc SQL statements.
第一步:向Suppliers表添加一个Computed Column
在本文,我们将向Suppliers表添加一个名为FullContactName的computed column列,它以“ContactName (ContactTitle, CompanyName)”的格式返回contact的name, title,以及所在的公司.
打开服务器资源管理器,在Suppliers表上单击右键,选“Open Table Definition”,这将会显示出表所包含的列以及列的属性,比如数据类型、是否允许为NULL值等等.要添加一个computed column列,只需在表定义里键入表的名称,接下来在Column属性窗口的Computed Column Specification部分的(Formula)文本框里输入表达式(如图1所示)。将该computed column列命名为FullContactName,并使用下面的表达式:
ContactName + ' (' + CASE WHEN ContactTitle IS NOT NULL THEN ContactTitle + ', ' ELSE '' END + CompanyName + ')'请注意,在SQL里可以用操作符“+” 来连接字符串。而CASE声明类似于传统编程语言里的条件语句。上面代码里的CASE 声明可以这样来理解:如果ContactTitle 不为NULL,那么输出ContactTitle值,再紧接一个逗号;如果为NULL,则无操作。关于CASE 声明的更多信息请参阅文章《The Power of SQL CASE Statements》(http://的创始人,自1998年以来一直应用 微软Web技术。大家可以点击查看全部教程《[翻译]Scott Mitchell 的ASP.NET 2.0数据教程》,希望对大家的学习ASP.NET有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
asp.net操作access数据库是常见的数据库操作应用,本文就来实例讲解一下asp.net实现access数据库分页的方法。希望对大家的asp.net程序设
本文实例讲述了asp.net提取多层嵌套json数据的方法。分享给大家供大家参考,具体如下:在.net2.0中提取这样的json:复制代码代码如下:{"name
本文实例讲述了ASP.NET缓存处理类。分享给大家供大家参考。具体如下:ASP.NET缓存处理类。用法:Justcopythiscodeintoanewclas
要想在ASP.NET项目中使用SQLite数据库,先需下载一个ADO.NET2.0SQLiteDataProvider,下载地址为:http://sourcef
AND指令在两个操作数的对应位之间进行(按位)逻辑与(AND)操作,并将结果存放在目标操作数中:ANDdestination,source下列是被允许的操作数组