0

Bulk Insertのコードに従っていますが 、 AccesssRecordset.Update(); で無効な引数の例外が発生してい ます。 または rs.Update();

Int UpdateType と bool Force の 2 つの引数を取ります。

public void BulkExportToAccess(DataTable dtOutData, String DBPath, String TableNm) 
{ 
DAO.DBEngine dbEngine = new DAO.DBEngine();
Boolean CheckFl = false;

try
{
    DAO.Database db = dbEngine.OpenDatabase(DBPath);
    DAO.Recordset AccesssRecordset = db.OpenRecordset(TableNm);
    DAO.Field[] AccesssFields = new DAO.Field[dtOutData.Rows.Count];

    //Loop on each row of dtOutData
    for (Int32 rowCounter = 0; rowCounter < dtOutData.Rows.Count; rowCounter++)
    {
        AccesssRecordset.AddNew();
        //Loop on column
        for (Int32 colCounter = 0; colCounter < dtOutData.Columns.Count; colCounter++)
        {
            // for the first time... setup the field name.
            if (!CheckFl)

          AccesssFields[colCounter] =                                               
          AccesssRecordset.Fields[dtOutData.Columns[colCounter].ColumnName];
            AccesssFields[colCounter].Value = dtOutData.Rows[rowCounter][colCounter];
        }

        AccesssRecordset.Update();
        CheckFl = true;
    }

    AccesssRecordset.Close();
    db.Close();
}
finally
{
    System.Runtime.InteropServices.Marshal.ReleaseComObject(dbEngine);
    dbEngine = null;
 }
 }

誰でも助けてくれますか

ありがとうございました

4

1 に答える 1

1

ではOpenRecordset、オブジェクトを作成しRecordsetます。UpdateType探しているのはUpdateTypeEnum; あなたは単に 1 を送ることができForceますtrue。つまり、他の誰かがこれらのレコードの 1 つを更新した場合、その変更は考慮されず、更新が強制されるため失われる可能性があります。

于 2013-02-21T12:26:05.970 に答える