Массовая вставка ODBC C # - PullRequest
       22

Массовая вставка ODBC C #

0 голосов
/ 06 ноября 2018

Я пытаюсь выяснить, как массово вставить несколько записей, используя ODBC (System.Data.Odbc), как я делал это раньше с ODP.Net (OracleCommand, OracleConnection) и параметризованными запросами.

С odp.net я сделал до некоторого исследования и нашел что-то вроде:

string query = @"insert into Customer ( surname, firstName, emailAddress) values 
                (:surname, :firstName, :emailAddress)";
oracleConnection.Open();
using (var command = oracleConnection.CreateCommand())
{
    command.CommandText = query;
    command.CommandType = CommandType.Text;
    command.BindByName = true;
  // In order to use ArrayBinding, the ArrayBindCount property
  // of OracleCommand object must be set to the number of records to be inserted
    command.ArrayBindCount = bulkData.Count;
    command.Parameters.Add(":surname", OracleDbType.Varchar2, bulkData.Select(c => c.Surname).ToArray(), ParameterDirection.Input);
    command.Parameters.Add(":firstName", OracleDbType.Varchar2, bulkData.Select(c => c.FirstName).ToArray(), ParameterDirection.Input);
    command.Parameters.Add(":emailAddress", OracleDbType.Varchar2, bulkData.Select(c => c.EmailAddress).ToArray(), ParameterDirection.Input);
    int result = command.ExecuteNonQuery();
    if (result == bulkData.Count)
        returnValue = true;
}

}

Я пытался использовать ту же логику с odbc, передавая данные с command.Parameters.AddWithValue, command.Parameters.Add и command.Parameters.AddRange, но все еще не могу понять, как управлять этим. Кто-нибудь пробовал?

...