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

asp.net

一般支持数据绑定的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();

* /

时间: 2024-10-02 03:26:04

ASP.NET Tips1---合并多个字段值的相关文章

asp.net C#获取数据库int字段值方法

private static void 使用原始sql命令打印字段值() { sqlconnection conn = new sqlconnection(@"data source=.sqlexpress;initial catalog=图库;integrated security=true"); try { conn.open(); console.writeline("sucess"); } catch (exception) { console.writel

怎么让数据库按2个字段值合并重复的并把其他属性横向输出

问题描述 怎么让数据库按2个字段值合并重复的并把其他属性横向输出 SELECT product.pro_name, product.pro_color, product.pro_spec, xsmx.mx_num FROM xs, xsmx, product where ( xs.xs_hao = xsmx.xs_hao ) and ( xsmx.pro_id = product.pro_id ) and ( xs.xs_hao ='XS20160422001' ) 数据是从几个表里 链接按xs

ASP中轻松实现变量名-值变换

变量 用过PHP的朋友都知道,PHP中变量的使用灵活方便,特别是能在字符串中方便实现变量名-值变换,使得整个PHP代码更显简洁优美.比如一条更新数据库的SQL语句只需写成:"update users set password='$password', group=$group, name='$username' where account='$account'",其中的$password.$group.$username.$account便会被实际的变量值替换,而在ASP中要实现相同的

mysql-请教一个关于Mysql字段值连接问题

问题描述 请教一个关于Mysql字段值连接问题 现在的需求是把某记录end的字段 和 下一条记录的begin字段作比较 ,如果是相邻的,并且continent和country字段相同,则把这两个记录合并成一条.如上图红框所示,把红框的合并成一条记录,begin是红框内第一条记录的begin,end是红框内最后一条记录的end.目的是为了缩小匹配的范围. 解决方案 MySQL更新一个值为null的字段 解决方案二: 这个可以用GROUP_CONCAT(),其中分组条件为continent和coun

sql-SQL筛选取多个字段值语法

问题描述 SQL筛选取多个字段值语法 trans表 date room transcode amount 2015-05-11 711 1 298 2015-05-10 421 2 398 2015-05-08 711 1 298 2015-05-09 601 1 298 2015-05-10 622 2 498 2015-05-10 501 2 368 2015-05-11 711 1 298 2015-05-09 431 2 238 查询结果: date room transcode amo

如何将ASP.NET动态生成控件的值赋给页面静态控件

问题描述 如何将ASP.NET动态生成控件的值赋给页面静态控件最近作一个产品发布功能,但是由于产品的技术参数不统一,需要根据产品的类型动态生成控件.动态控件生成后需要多控件赋值,但是所赋的值需要给页面的静态控件,通过静态控件添加到数据库的技术参数字段下.将动态控件的赋值再给页面静态控件应该如何作呢?请教高手,望给予指点哦,急啊!这是我写的动态控件的生成代码://通过类型绑定技术参数privatevoiddatabindpramametersbyproducttype(intnid){ChinaE

mvc3 如果实现只修改表中部分字段值?

问题描述 用EF映射了一张用户表User,字段如下:userid用户名pwd密码name姓名tel电话address地址createtime创建时间接到要求要实现一个用户资料修改的功能,需对数据表中已有的数据(电话,地址)进行修改.于是,我在修改页面上制作了两个文本框tel电话,address地址,提供给用户输入,其他项是只读的标签.在提交修改的代码中,实例化了一个对象user,并且接收修改界面传递过来的值由于页面传递过来只有文本框和用户名输入了值,即userid='001',user.tel=

mysql-MYSQL更新求解,字段值等于上一条字段值加上现有字段值

问题描述 MYSQL更新求解,字段值等于上一条字段值加上现有字段值 one等于上一个one加上现在的money,这个mysql语句怎么写哇? 解决方案 http://zhidao.baidu.com/link?url=wBFSSnHcTVhbNYHd_8WfIhIbFn4QA9s9SnOEVQfo3c2yCyRn6iXiIQW_BMlsmeaylw7xAqBgVIrMpdDLcPk5X_

asp如何获取access数据库的字段说明

asp如何获取access数据库的字段说明代码如下:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>提取access字段的说明信息</title></head><%dim table                  table = trim(request(&qu