DataList绑定DataSet问题 ~~~~~100分~~~高手到
比如:我到dataset中有2张表dataset.tables[0] 存储姓名
dataset.tables[1] 存储年纪
this.DataList.DataSource =dataset;
this.DataList.DataBind();
问前台有
姓名:<%#Eval('姓名')>
年纪:<%#Eval('年纪')>
这样写前台会报错
请问如何前台绑定呢?????? --------------------编程问答-------------------- 姓名: <%#Eval('姓名')>
年纪: <%#Eval('年纪')>
应该只有后面那个报错吧,默认用的是table[0],不能同时两个表 --------------------编程问答-------------------- 你的DS中有两张表,DataList不能同事绑定两个表,要么你可以把两个表做成个视图再绑定到DataList上,要么,为DataList指定绑定的是TB1还是TB2。 --------------------编程问答--------------------
我意思是说如何同时有绑定table[0]和table[1] --------------------编程问答-------------------- 不能同时绑定两个表, --------------------编程问答-------------------- 把两个Table合并成一个Table在绑定吧 --------------------编程问答-------------------- 姓名和年纪为什么要分开放在2个DataTable里? --------------------编程问答--------------------
这只是个例子
我是用别人到接口 返回的是xml 转换成dataset中就有好个几个表 --------------------编程问答-------------------- 那你就放两个DateList分别绑定table[0]和table[1] --------------------编程问答-------------------- 如果是一对一的关系,最好能合并,否则可用父子表来完成。
--------------------编程问答--------------------
能详细说说父子表吗?? --------------------编程问答-------------------- C#提供的merge函数只针对同类型的数据表;楼主这种情况需要自己定义一个函数。
我做了一个专门针对楼主这种情况的函数MergeDataTable()
楼主可以这样调用:
Dt1 = MergeDataTable(Dt1, Dt2, "ID");
下面是函数定义:
/************************************************
** 函数名 : MergeDataTable
** 函数功能: 合并DataTable
** 入力参数:
** dt1 要合并的DataTable1
** dt2 要合并的DataTable2
** keyColName dt1与dt2联系的关键列名
** 出力参数: none
** 返回值 :
** dtReturn 合并后的DataTable
** 作成者 : 悉雨辰寂
************************************************/
private DataTable MergeDataTable(DataTable dt1, DataTable dt2, String KeyColName)
{
//定义临时变量
DataTable dtReturn = new DataTable();
int i=0;
int j=0;
int k=0;
int colKey1=0;
int colKey2=0;
//设定表dtReturn的名字
dtReturn.TableName = dt1.TableName;
//设定表dtReturn的列名
for(i=0; i<dt1.Columns.Count; i++){
if( dt1.Columns[i].ColumnName == KeyColName ){
colKey=i;
}
dtReturn.Columns.Add( dt1.Columns[i].ColumnName );
}
for(j=0; j<dt2.Columns.Count; j++){
if( dt1.Columns[j].ColumnName == KeyColName ){
colKey2=j;
continue;
}
dtReturn.Columns.Add( dt2.Columns[j].ColumnName );
}
//建立表的空间
for(i=0; i<dt1.Rows.Count; i++){
DataRow dr;
dr = dtReturn.NewRow();
dtReturn.Rows.Add(dr);
}
//将表dt1,dt2的数据写入dtReturn
for(i=0; i<dt1.Rows.Count; i++){
int m=-1;
//表dt1的第i行数据拷贝到dtReturn中去
for(j=0; j<dt1.Columns.Count; j++){
dtReturn.Rows[i][j] = dt1.Rows[i][j].ToString();
}
//查找的dt2中KeyColName的数据,与dt1相同的行(即楼主两个表中ID相同的行)
for(k=0; k<dt2.Rows.Count; k++){
if( dt1.Rows[i][colKey1].ToString() == dt1.Rows[k][colKey2].ToString() )}
m=k;
}
}
//表dt2的第m行数据拷贝到dtReturn中去,且不要KeyColName(ID)列
if( m!=-1 ){
for(k=0; k<dt2.Columns.Count; k++){
if( k==colKey2 ){
continue;
}
dtReturn.Rows[i][j] = dt2.Rows[m][k].ToString();
j++;
}
}
}
return dtReturn ;
}
函数配有注释,应该很容易看明白。 --------------------编程问答-------------------- 用试图就行了把两张表弄在一块
补充:.NET技术 , ASP.NET