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

ASP.NET
调用另外一个同名的重载函数漏掉括号出现的严重问题
DataGrid模板列应用:在DataGrid中用CheckBox控制TextBox的Enabled属性
使用存储过程的一个小例子
.net中xmlhttp下载文件的方法参考
简单的c#文本文件读写
我的C#学习过程 第一天 安装
在数据库中开始一个事务。
用ASP.NETt实现简单的文字水印
C/S系统中三层结构(Com/Com+)的测试成功实现
VB 二进制块读写类模块应用实例,包括一个文件拷贝和一个文件二进制比较的例子。
扫雷程序“布雷”代码(vb)
关于网络连接状态的编程
c#中ref和out参数使用时需要注意的问题
use Assembly to call a method
在VBA中调用AUTOCAD打印文件
在VS.NET的
昨天折腾了一晚上,哪位高手帮我看看!急!
Net是未来的趋势吗?
如何修改自定义Webpart 的标题(downmoon)
[收藏]ASP.Net生成静态HTML页 选择自 coofucoo 的 Blog

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


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