MyDMnew2.UpdateData方法如下(其他部分省略):  
 
public  void  UpdateData(DataSet  DataSet,  string  TableName)  
{  
SqlDataAdapter  DataAdapter  =  new  SqlDataAdapter();  
DataAdapter.Update(DataSet,"TableName");  
DataAdapter.Dispose();    
}  
中的“TableName”是没有双引号的!

解决方案 »

  1.   

    OK!因为此时tablename是一个string型变量,所以不要加引号
      

  2.   

    dataGrid1.DataSource  =  dataSet1.Tables["Chat"];
      

  3.   

    TableName是变量,应该在引号外面,而且dataSet1.Clear();是已经建立的吗?
      

  4.   

    大哥们!我已经去掉了,但是还是出现如下错误啊!未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中。其他信息: 当传递具有新行的 DataRow 集合时,更新要求有效的 InsertCommand。
      

  5.   

    你是不是没有把数据结构绑定dataset上面呀?
      

  6.   

    你用SqlDataAdapter是否为其他语句(如插入、删除等)生成语句,
    例如:SqlConnection myConn = new SqlConnection(myConnection);
    SqlDataAdapter myDataAdapter = new SqlDataAdapter();
    myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn);
    SqlCommandBuilder custCB = new SqlCommandBuilder(myDataAdapter);myConn.Open();DataSet custDS = new DataSet();
    myDataAdapter.Fill(custDS, "Customers");
    这样在只写查询语句的情况下,可以进行其它操作。
    注意:查询的表必须有主键。
      

  7.   

    dataSet1.Clear();?  
    How many tables in this dataset?
      

  8.   

    我觉得你的这个方法有问题:
    public  void  UpdateData(DataSet  DataSet,  string  TableName)  
    {  
    SqlDataAdapter  DataAdapter  =  new  SqlDataAdapter();  
    DataAdapter.Update(DataSet,TableName);  
    DataAdapter.Dispose();    
    }  
    读取数据时用到的跟你要调用Update方法的适配器应该是同一个。在此你不能用new出来,我觉得你可以试试看:public  void  UpdateData(DataSet  DataSet,  string  TableName)  

       this.BindingContext[this.DataSet,TableName].EndCurrentEdit();
       try{ 
            this.myDataAdapter.Update(DataSet,TableName); 
            DataAdapter.Dispose();   
          }
       catch(Exception err)
         {
           Debug.Fail(err.Message);//别忘了添加引用:using System.Diagnostics;
         }
    }
     
    }  
      

  9.   

    this.myDataAdapter.Update(DataSet,TableName); 
            DataAdapter.Dispose();   
    中的myDataAdapter是取什么地方的呢?