OleDbCommandBuilder MycmdBud = new OleDbCommandBuilder( mDa );
mDa.Update(mDs)
mDs.AcceptChanges ();

解决方案 »

  1.   

    如果页面上有几百个控件,在这些控件里面录入或修改数据之后提交,如果不用绑定,可能就要一个很长很长的SQL语句,如果这样的页面比较多,这样的工作量不是太大了。如果能象VB或DELPHI的绑定一样,配置好后AUTO保存数据,在.NET里能不能实现?
      

  2.   

    用DataSet的Update方法可以一次大批量更新记录。
      

  3.   

    我现在也是在用DATASET的UPDATE。
    我在一个页面中的数据要录入到三个表中,我实在想不出什么简洁的方法,只好如下罗:
    SqlDataAdapter objDaD;
    SqlDataAdapter objDaM;
    SqlDataAdapter objDaV;
    SqlCommand objCmdInsertD;
    SqlCommand objCmdUpdateD;
    SqlCommand objCmdInsertM;
    SqlCommand objCmdUpdateM;
    SqlCommand objCmdInsertV;//objDaV=new SqlDataAdapter("SELECT * FROM DETECT_TOOLS WHERE DEVICE_ID='"+"A"+"'",mCNN);
    SqlCommand objCmdUpdateV;//objDaM=new SqlDataAdapter("SELECT * FROM MACHINES WHERE DEVICE_ID='"+"A"+"'",mCNN); objDaD=new SqlDataAdapter("SELECT * FROM DEVICES WHERE DEVICE_ID='"+"A"+"'",mCNN);

    objCmdInsertD=new SqlCommand(
    @"INSERT INTO DEVICES (DEVICE_ID, DEVICE_CODE, CATEGORY_ID, NAME, SPEC, UNIT, ORIGIN_VALUE, START_DATE, FIX_YEAR, WARE_ID, IMAGE1, IMAGE2, IMAGE3, TEXT1, TEXT2, MEMO, Report_Unit, Using_Unit, STATE) VALUES (@D_DEVICE_ID, @DEVICE_CODE, @CATEGORY_ID, @NAME, @SPEC, @UNIT, @ORIGIN_VALUE, @START_DATE, @FIX_YEAR, @WARE_ID, @IMAGE1, @IMAGE2, @IMAGE3, @TEXT1, @TEXT2, @MEMO, @Report_Unit, @Using_Unit, @STATE)",
    mCNN);
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@D_DEVICE_ID", System.Data.SqlDbType.VarChar, 10, "DEVICE_ID"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DEVICE_CODE", System.Data.SqlDbType.VarChar, 6, "DEVICE_CODE"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CATEGORY_ID", System.Data.SqlDbType.Int, 4, "CATEGORY_ID"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@NAME", System.Data.SqlDbType.VarChar, 100, "NAME"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@SPEC", System.Data.SqlDbType.VarChar, 100, "SPEC"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@UNIT", System.Data.SqlDbType.Int, 4, "UNIT"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ORIGIN_VALUE", System.Data.SqlDbType.Money, 8, "ORIGIN_VALUE"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@START_DATE", System.Data.SqlDbType.DateTime, 8, "START_DATE"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FIX_YEAR", System.Data.SqlDbType.Real, 4, "FIX_YEAR"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@WARE_ID", System.Data.SqlDbType.Int, 4, "WARE_ID"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IMAGE1", System.Data.SqlDbType.VarBinary, 2147483647, "IMAGE1"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IMAGE2", System.Data.SqlDbType.VarBinary, 2147483647, "IMAGE2"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IMAGE3", System.Data.SqlDbType.VarBinary, 2147483647, "IMAGE3"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@TEXT1", System.Data.SqlDbType.VarChar, 2147483647, "TEXT1"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@TEXT2", System.Data.SqlDbType.VarChar, 2147483647, "TEXT2"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@MEMO", System.Data.SqlDbType.VarChar, 2147483647, "MEMO"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Report_Unit", System.Data.SqlDbType.VarChar, 200, "Report_Unit"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Using_Unit", System.Data.SqlDbType.VarChar, 200, "Using_Unit"));
    objCmdInsertD.Parameters.Add(new System.Data.SqlClient.SqlParameter("@STATE", System.Data.SqlDbType.Int, 4, "STATE"));
    objCmdUpdateD=new SqlCommand(
    @"UPDATE DEVICES SET DEVICE_ID = @DEVICE_ID, DEVICE_CODE = @DEVICE_CODE, CATEGORY_ID = @CATEGORY_ID, NAME = @NAME, SPEC = @SPEC, UNIT = @UNIT, ORIGIN_VALUE = @ORIGIN_VALUE, START_BILL_ID = @START_BILL_ID, START_DATE = @START_DATE, FIX_YEAR = @FIX_YEAR, WARE_ID = @WARE_ID, IMAGE1 = @IMAGE1, IMAGE2 = @IMAGE2, IMAGE3 = @IMAGE3, TEXT1 = @TEXT1, TEXT2 = @TEXT2, MEMO = @MEMO, Report_Unit = @Report_Unit, Using_Unit = @Using_Unit, STATE = @STATE WHERE (DEVICE_ID = @DEVICE_ID)",
    objCNN);
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DEVICE_ID", System.Data.SqlDbType.VarChar, 10, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "DEVICE_ID", System.Data.DataRowVersion.Original, null));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@DEVICE_CODE", System.Data.SqlDbType.VarChar, 6, "DEVICE_CODE"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CATEGORY_ID", System.Data.SqlDbType.Int, 4, "CATEGORY_ID"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@NAME", System.Data.SqlDbType.VarChar, 100, "NAME"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@SPEC", System.Data.SqlDbType.VarChar, 100, "SPEC"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@UNIT", System.Data.SqlDbType.Int, 4, "UNIT"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ORIGIN_VALUE", System.Data.SqlDbType.Money, 8, "ORIGIN_VALUE"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@START_BILL_ID", System.Data.SqlDbType.VarChar, 9, "START_BILL_ID"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@START_DATE", System.Data.SqlDbType.DateTime, 8, "START_DATE"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@FIX_YEAR", System.Data.SqlDbType.Real, 4, "FIX_YEAR"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@WARE_ID", System.Data.SqlDbType.Int, 4, "WARE_ID"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IMAGE1", System.Data.SqlDbType.VarBinary, 16, "IMAGE1"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IMAGE2", System.Data.SqlDbType.VarBinary, 16, "IMAGE2"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@IMAGE3", System.Data.SqlDbType.VarBinary, 16, "IMAGE3"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@TEXT1", System.Data.SqlDbType.VarChar, 2147483647, "TEXT1"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@TEXT2", System.Data.SqlDbType.VarChar, 2147483647, "TEXT2"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@MEMO", System.Data.SqlDbType.VarChar, 2147483647, "MEMO"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Report_Unit", System.Data.SqlDbType.VarChar, 200, "Report_Unit"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Using_Unit", System.Data.SqlDbType.VarChar, 200, "Using_Unit"));
    this.sqlUpdateCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@STATE", System.Data.SqlDbType.Int, 4, "STATE"));
    太TMD原始了。
      

  4.   

    强烈建议用存储过程,或者使用.net事务处理!!!!!!!!!!!!!!!