public static DataSet SelectSqlSrvRows(string myConnection, string mySelectQuery, string myTableName)
{
   SqlConnection myConn = new SqlConnection(myConnection);
   SqlDataAdapter myDataAdapter = new SqlDataAdapter();
   myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn);
   SqlCommandBuilder cb = new SqlCommandBuilder(myDataAdapter);   myConn.Open();   DataSet ds = new DataSet();
   myDataAdapter.Fill(ds, myTableName);   //code to modify data in DataSet here   //Without the SqlCommandBuilder this line would fail
   myDataAdapter.Update(ds, myTableName);   myConn.Close();   return ds;
}

解决方案 »

  1.   

    private SqlDataAdapter da=new SqlDataAdapter();
    private SqlCommandBuilder sqlcmb;
    改成
    private static SqlDataAdapter da=new SqlDataAdapter();
    private static SqlCommandBuilder sqlcmb;
    就ok了
    因为当你再调用类时,da已经不是原来那个了,只有加static它的值才再一次调用时不会变,只有重新开始或者da.dispose()才会变
      

  2.   

    可以重新实例化一下DataAdapter,再把DataSet填进去.如果想省点事.你就调用
    private void frmProvider2_Load
    因为窗体加载时总要从数据库取数据显示的吧