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

ASP.NET
在ASP.NET中自动给URL加上超级链接
在ASP.NET中怎么用Session判断用户是否登录?
C#是一种新的语言?或者仅仅只是Java
在网页中动态的生成一个图片
C#实现的18位身份证格式验证算法
Asp.net中的页面乱码的问题
ASP.NET中利用存储过程实现模糊查询
ASP.NET 2.0中构造个性化网页
.net教程:ASP.NET GridView的分页功能
ASP.Net中无刷新执行Session身份验证
用事实说话!AJAX应用程序开发七宗罪
迁移你的Web页面到ASP.NET AJAX 1.0
SQL Server 2005中插入XML数据方法
编程技巧 用Asp.net动态生成html页面
在asp.net 2.0 中使用的存储过程解析
用 asp.net 动态设置 WebService 引用
新手入门之ASP.NET2.0中的缓存技术解析
asp.net编程中实现 MD5 加密
ASP.NET备份恢复SqlServer数据库
Asp.Net输出数据到EXCEL表格中

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


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