高手帮忙啊 为什么合并不了两个dataset的数据啊
//进行read的合并操作Response.Write("infront:" + readin.Tables[0].Rows.Count + "|" + read.Tables[0].Rows.Count + ",back:");
read.Merge(readin, true, MissingSchemaAction.Add);
Response.Write(read.Tables[0].Rows.Count+"<br>");
结果是:infront:2|2,back:2 为什么合并不了呢??谢谢 --------------------编程问答-------------------- 声明一下:readin和read里面的数据结构一样 --------------------编程问答-------------------- 高手帮忙啊 谢谢啊 --------------------编程问答-------------------- 重发一下
read=get_dataset("select * from news where classid=1");
readin=get_dataset("select * from news where classid=2");
//进行read的合并操作
Response.Write("infront:" + readin.Tables[0].Rows.Count + "|" + read.Tables[0].Rows.Count + ",back:");
read.Merge(readin, true, MissingSchemaAction.Add);
Response.Write(read.Tables[0].Rows.Count+"<br>");
结果是:infront:2|2,back:2 为什么合并不了呢??谢谢
我只想问的是为什么合并之后没有更新,不是别的 谢谢
--------------------编程问答-------------------- 帮鼎鼎. --------------------编程问答-------------------- 更新了呀,不更新怎么会是2呢 --------------------编程问答-------------------- readin.Tables[0].Rows.Count要加.ToString()吧 --------------------编程问答-------------------- up --------------------编程问答-------------------- mark --------------------编程问答-------------------- 除非的两个表的模式不一样 ....
对于 DataSet 实际上会合并的是 DataTable,因此要合并的 DataTable.TableName 要一致,
否则假如参数 missingSchemaAction == MissingSchemaAction.Add 就作为新表添加了
1。
首先,你应该学会自己【调试代码,发现问题所在】
比如
你应该检查合并之后,DataSet 的表数目是否多了一个
Response.Write(read.Tables.Count);
再如,你应该尝试该参数 missingSchemaAction
read.Merge(readin, true, MissingSchemaAction.Error); // 此时,如果两个 DataSet 模式不一致,就会报错,会给你有用的信息
2。
请尝试,
// a.
readin.Tables[0].TableName = read.Tables[0].TableName;
read.Merge(readin, true, MissingSchemaAction.Add);
// b.
read.Tables[0].Merge(readin.Tables[0], true, MissingSchemaAction.Add); --------------------编程问答-------------------- 楼上说的有理 加个断点试试
再就是两个表中的 列要一致! --------------------编程问答-------------------- mark 学习了 --------------------编程问答-------------------- Jinglecat已经说的很详细了,如果两个DataSet的结构是一样的话,完全没有必要采用3个参数重载的Merge()方法。read.Merge(readin);就可以了。 --------------------编程问答-------------------- <HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>
用inner Join可以做到一个表返回纪录,速度要快些。<br/>
select * from 主表 inner Join 从表 on 主表.外键=从表.id<br/>
如果要显示上合并行,可以在客户端合并<br/>
<TABLE WIDTH=75% BORDER=1 CELLSPACING=1 CELLPADDING=1 id="tb">
<TR id="row">
<TD id="td">1</TD>
<TD>a</TD>
<TD>b</TD>
</TR>
<TR>
<TD>1</TD>
<TD>c</TD>
<TD>d</TD>
</TR>
<TR>
<TD>1</TD>
<TD>c</TD>
<TD>d</TD>
</TR>
<TR>
<TD>2</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
<TR>
<TD>2</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
<TR>
<TD>2</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
<TR>
<TD>2</TD>
<TD>e</TD>
<TD>f</TD>
</TR>
</TABLE>
<SCRIPT LANGUAGE=javascript>
var Rows=document.getElementById("tb").rows;
var Col=1;//这个是要合并的第几列;
var lastValue;
for(i=0;i<Rows.length;i++)
{
lastValue=Rows[i].cells[Col-1].innerHTML;
var same=1;
while(lastValue==Rows[i+same].cells[Col-1].innerHTML )
{
Rows[i+same].removeChild(Rows[i+same].cells[Col-1]);
same+=1;
if((i+same)==Rows.length )
{
break;
}
}
Rows[i].cells[Col-1].rowSpan=same;
i=i+same-1;
}
</SCRIPT>
</BODY>
</HTML>
补充:.NET技术 , ASP.NET