当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ASP.NET Tips1---合并多个字段值

ASP.NET
Asp.net Ajax--Calendar控件使用
让ASP.NET程序自动为URL加上超级链接
ASP.NET2.0MasterPage技巧总结
asp.net读取数据库乱码的解决完全方案
asp.net中生成缩略图并添加版权
ASP.Net用MD5和SHA1加密的几种方法
asp.net客户端回调功能的实现机制
ASP.NET2.0中控件的简单异步回调
用在JavaScript的RequestHelper
用Java发送图文并茂的HTML邮件
基于.NET平台的分层架构实战(一) 综述
基于.NET平台的分层架构实战(二)需求分析与数据库设计
基于.NET平台的分层架构实战(三)架构概要设计
基于.NET平台的分层架构实战(四)实体类的设计与实现
近期的几个ASP.NET开发经验总结和收集
ASP.NET中的状态管理
asp.net基础知识介绍
对数据访问层第一种实现(Acc+SQL)的重构
.NET初学者推荐课程 asp.net错误代码大全
在.net中如何利用数据工厂实现多数据库的操作

ASP.NET Tips1---合并多个字段值


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 105 ::
收藏到网摘: n/a

一般支持数据绑定的web控件,例如DorpDownList控件、CheckBoxList控件等,都包含五个属性:DataSource、DataMember,DataTextField、DataValueField和DataTextFormatString。DataSource用于获取数据源,亦即获取包含数据的集合;其他四个属性用于获取数据源中的一个字段值。然而,通常情况下,你想将这些数据源中的多个字段值绑定在一起赋值给其中的一个属性,这是不能直接实现的。下面我们将介绍两种方法用于实现这一功能。 以上限制在于不能将多个字段值绑定在一起,赋值给这四个属性中的其中一个;但是SQL语句却完全没有这种限制。所以,我们的第一个方法是使用SQL语句将源表中的两个或多个字段值绑定在一起,使用AS子句传递给另一个字段,这样就实现了一个字段包含多个字段值。由于现在一个字段就包含了多个字段的值,我们将其赋值给web控件的那四个属性时就不用有更多的考虑了。我们可以参考下面的语句看看这种方法的妙处: strCmd="SELECT employeeid,lastName +','+firstName AS 'EmployeeName' FROM Employees"; 这种方法十分简洁,也是最直接的一种方法,不过存在着效率不足的问题,而且有可能会产生重复数据。下面我们介绍另一种方法,我们可以将源表填充到一个数据集DataSet中,然后将数据集的数据放置到一个数据表DataTable中,然后给该表创建一个新列,该列由源表中的两个或多个字段构成,这样我们也实现了多个字段值的绑定。下面的语句可以说明这种方法的实现: dt.Columns.Add(“EmployeeName”,typeod(String),”lastName+’,’+firstName”); 后一种方法的缺点在于创建新列的开销。不过这种方法条理比较清楚,而且不会产生重复数据的可能,建议使用这种方法。 为了说明这两种方法,下面的代码将两种方法放在一起实现了: // 在此处放置用户代码以初始化页面 string strConn,strCmd; strConn="DATABASE=NorthWind;SERVER=localhost;UID=sa;PWD=99133009;"; //如果既需要将firstName和LastName绑定,又需要单独使用他们,下面的语句就会产生重复数据。 strCmd="SELECT employeeid,firstName,lastName,lastName +','+firstName AS 'EmployeeName' FROM Employees"; SqlDataAdapter dsda=new SqlDataAdapter(strCmd,strConn); DataSet ds=new DataSet(); dsda.Fill(ds,"EmployeeList"); DataTable dt=ds.Tables["EmployeeList"]; //第一种方法 //DDL1是一个DropDownList控件 DDL1.DataSource=dt.DefaultView; DDL1.DataTextField="EmployeeName"; DDL1.DataValueField="employeeid"; DDL1.DataBind(); /*第二种方法 dt.Columns.Add("EmployeeName",typeod(String),"lastName+','+firstName"); DDL1.DataTextField="EmployeeName"; DDL1.DataBind(); * /