异常信息:DataAdapter.SelectCommand 属性需要初始化为什么会产生这样的异常信息,在下感觉到DataAdapter.SelectCommand初始化啊。应用代码:
       AccessDB access=new Access();
       //“消费项目”绑定GridView
       string sql_xfxm_bdgv = "select * from xfxmb ";
       access.FillDt_DGV(GridView_XFXM,sql_xfxm_bdgv);Access类中的代码:
  public class AccessDB
        {
            #region 变量声明处
            public OleDbConnection Conn;
            public OleDbCommand  Comm;
            public OleDbDataAdapter OleDbAdapter;
            public DataSet ds;
            public DataTable dt;
            public OleDbDataReader dr;
           #endregion
            #region 数据库连接类生成处
            public AccessDB()
            {
                string connectionString="";
                connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;";
                connectionString =connectionString + @System.Configuration.ConfigurationSettings.AppSettings["connString"].ToString();
                Conn = new OleDbConnection(connectionString);
                Conn.Open();
            }
              #endregion
            
             #region  DataGridView绑定和更新
          
           /// <summary>
            /// 绑定DataGridView
           /// </summary>
           /// <param name="DGV">DGV</param>
           /// <param name="str">SQL</param>
            public void FillDt_DGV(DataGridView DGV ,string str)
            {
                Comm = Conn.CreateCommand();
                Comm.CommandText = str;
                OleDbAdapter = new OleDbDataAdapter();
                OleDbAdapter.SelectCommand = Comm;
                DataTable data = new DataTable();
                OleDbAdapter.Fill(data);
                DGV.DataSource = data;
                OleDbCommandBuilder builder = new OleDbCommandBuilder();
                OleDbAdapter.UpdateCommand = builder.GetUpdateCommand();
                   异常信息: DataAdapter.SelectCommand 属性需要初始化。
        OleDbAdapter.InsertCommand = builder.GetInsertCommand();
                OleDbAdapter.DeleteCommand = builder.GetDeleteCommand();            }          #endregion      }
      

解决方案 »

  1.   

    在初始化OleDbAdapter.UpdateCommand 之前你初始化一个DataAdapter.SelectCommand 就好了,
    OleDbAdapter.UpdateCommand需要DataAdapter.SelectCommand  的支持
      

  2.   

    我做的一个批量删除的。。和updateCommand是一样的道理你看看有没有用
     public int BatchDelorUpdateorInsert(string str,DataSet ds)
            {
                SqlConnection conn = new SqlConnection(strDB);
                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                adapter.DeleteCommand = new SqlCommand(str, conn);
                adapter.DeleteCommand.Parameters.Add("@GUID", SqlDbType.UniqueIdentifier, 36, "GUID").SourceVersion = DataRowVersion.Original;
                int count= adapter.Update(ds);
                return count;
            }
      

  3.   

    OleDbCommandBuilder 在自动创建更新语句时,需要根据查询来创建,而你并未给它查询语句,另外更新和删除操作的创建还需要原表有主键,否则只能自己创建更新和删除语句。