2015-10-01 2 views
0

в C#, я пытаюсь вставить и обновить таблицу, используя следующие строки:оракул, количество строк, вставленных/обновлено

OracleDataAdapter da = new OracleDataAdapter(query, connection); 
da.Fill(ds); 

Это работает.

Но, мне нужно знать, как получить количество строк, вставленных в обновление. запрос что-то вроде

insert into someTable Values(...) 
+0

Вы получаете dataset? –

+0

yes ds - это набор данных – user2482541

+0

, тогда вы попробовали сделать ds.Tables [0] .Rows.Count? –

ответ

0

Там нет никакого способа узнать записи установлен счетчик, не запуская отдельный счетчик (*) запрос. Это по дизайну. DataReader и DataAdapter доступны только для чтения, только для чтения.

Вы можете попробовать альтернативный подход, как показано ниже, чтобы получить затронутые строки.

public bool UploadBulkData(List<CustomerDTO> bulkData) 
    { 
     bool returnValue = false; 
     try 
     { 

      string query = @"insert into PCMS.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(); 
       **result is what you need** 
      } 

     } 
     catch (OracleException ex) 
     { 
      //Log error thrown 
     } 
     finally 
     { 
      oracleConnection.Close(); 
     } 
     return returnValue; 
    } 
Смежные вопросы