我建了个数据集,在其中加了三个表(表一、表二、表三),我更新其中表二的数据,提示出错,而出错的内容是表中没有相应的列,奇怪的是出错的列是表一中的字段。
注:表名没有错,我用同样的表名显示数据是正确的。

解决方案 »

  1.   

    请把问题说清楚。
    DataSet ds = new DataSet();
    DataTable dt1 = new dt1("Table1");
    DataColumn dc = new DataTable("col1", typeof(string));
    dt1.Columns.Add(dc);
    ...
    DataTable dt2 = new dt1("Table2");
    ...
    DataTable dt3 = new dt1("Table3");
    ...
    ds.Tables.Add(dt1);
    ...
    这么增加的?
    那更新表二的数据是什么意思?怎么更新的?===========
    如果是在vs2005数据源设计器里拖动了数据库中三个表,那是在类似Table2Adapter.Update(dataSet1.Table2);更新数据库时提示错误呢?还是通过绑定控件更新内存中表二的数据时提示错误呢?
    =======
      

  2.   

    //这是我用的创建数据集和添加映射表的类
    public class conn(){
    System.Data.Dataset myDS;
    System.Data.SqlClient.SqlConnection myConnection;
    ...........public void Builder(String Sql,String tablename)
    {
    myAdapter=new SqlDataAdapter(Sql,myConnection);
    myCommandBuilder=new SqlCommandBuilder(myAdapter);
    myDS=new DataSet();
    myAdapter.Fill(myDS);
    }
    public void BuilderAdd(String Sql,String tablename)
    {
    myAdapter=new SqlDataAdapter(Sql,myConnection);
    myCommandBuilder=new SqlCommandBuilder(myAdapter);
    myAdapter.Fill(myDS);
    }
    .................}//表单Webfrom中的操作private void ADDDS(){
    String SQL="select * from dbtable1 ";
    private conn conn=new conn();
    conn.Builder(SQL,dbtable1 );
    SQL="select * from dbtable2 ";
    conn.BuilderAdd(SQL,dbtable2 );
    SQL="select * from dbtable3 ";
    conn.BuilderAdd(SQL,dbtable3 );}private void ShowData(){
    .................
    //J#语法
    this.txt1.set_text(conn.myDS.get_Tebles().get_Item("dbtable1").get_Rows().get_Item(0).ToString());
    //C#语法
    this.txt1.text=conn.myDS.Tebles("dbtable1").Rows(0).ToString();
    ................}private void bindgdrg1(){
    //j#语法
    gdrg1.DataSource=conn.myDS.get_Tebles().get_Item("dbtable2").get_DefaultView();
    gdrg1.DataBind();
    //C3语法基本相同

    }//更新数据
    private void updatedb(){
    //J#
    conn.myDS.get_Tables().get_Item("dbtable2").get_Rows().get_Item(0).set_Item(列名一,value);
    conn.myAdapter.upDate(conn.myDS.get_Tables().get_Item("dbtable2"));
    //C#
    conn.myDS.Tables("dbtable2").get_Rows(0).Item(列名一) = value;
    conn.myAdapter.upDate(conn.myDS.Tables("dbtable2"));
    }无论用C#还是用J#都提示出错,Colum 列“dbtable3的一个字段名” 源址不存在,出错信息我记得不准确,不在这个机子上,大概意思是列源数据方面的错误,关键是更新表二的数据,怎么提示表三的错误?????????????、如果数据集中没有表,可我三个表的数据显示都能正常。程序较长,不能全部贴出来Sorry