声明一下:readin和read里面的数据结构一样

解决方案 »

  1.   

    重发一下
    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()吧
      

  3.   

    除非的两个表的模式不一样 ....对于 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);
      

  4.   

    Jinglecat已经说的很详细了,如果两个DataSet的结构是一样的话,完全没有必要采用3个参数重载的Merge()方法。read.Merge(readin);就可以了。
      

  5.   

    <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>