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

ASP.NET
ASP.NET2.0向其它网页传递信息的方法
基于 pureXML 技术的数据库表结构扩展
利用缓冲技术提高JSP程序的性能和稳定性
ASP.NET常用的三十三种实用代码
用ASP.Net实现在线压缩和解压缩
编程高手 ASP.NET 状态管理
flash菜单与asp.net进行交互
ASP.NET1.1中动态树的实现
ASP.NET 设计中的 N 个技巧
基于.NET平台的分层架构实战(五)接口的设计与实现
.NET平台依赖注入机制及IoC的设计与实现
依赖注入机制及IoC的设计与实现
数据访问层的第一种实现:Access+SQL
超简单实现 .NET开发类似Web Parts的功能
剖析ASP.NET AJAX的面向对象思想
WPF自定义漂亮的按钮样式
ASP.NET中常用的26个优化性能方法
用Xaml做网页框架
从UI->DB一条龙到代码生成到EOS,谈谈快速开发
ASP.NET ViewState 初探 (1)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 177 ::
收藏到网摘: 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(); * /