2017-10-03 2 views
0

Ich habe die folgenden Zeilen von Code, der eine proc aufrufen und die Ergebnisse des proc zurückrufen und sie in einer DatatableUpserting eine Datatable über ein proc Aufruf C#

DataTable dt = new DataTable(); 
SqlDataAdapter data = new SqlDataAdapter(); 

_repo.ExecuteSprocPopulateDataTable(command, null, dt); 

Wenn ich meinen Code debuggen, mein Datatable wird mit den Ergebnissen wie erwartet ausgefüllt, aber ich bleibe bei der Weitergabe der Daten in meine Datenbank über einen anderen Prozess.

Ich habe geschaut und einige Sachen über SqlDataAdapters und versuchte, die folgende Zeile zu sehen:

data.Update(dt.DataSet, _command); 

Aber wenn ich es tue, es sagt mir, dass Value can not be null die zu meinem Daten-Set bezieht.

Kann mir jemand den besten Weg empfehlen, meine Daten über einen Proc-Call hochzuladen?

+0

Sie fragen, wie Tabellenwertparameter zu benutzen? –

Antwort

0

Nicht ganz sicher, was das _command ist, aber mit SqlDataAdapters, Updates der Regel so aus:

try 
{ 
    using (SqlCommandBuilder cb = new SqlCommandBuilder(data)) 
    { 
     data.InsertCommand = cb.GetInsertCommand(); 
     data.UpdateCommand = cb.GetUpdateCommand(); 
     data.DeleteCommand = cb.GetDeleteCommand(); 
     data.Update(dt); 
    } 
} 
catch (Exception ex) 
{ 
    // handle errors 
}