Come eseguire datatable contro la stored procedure per aggiornare il database?

Ho usato OleDB per importre il file di Excel. (Nessun problema lì.)

Devo connettersi al database e call una stored procedure che sta andando essenzialmente ad aggiornare il mio DB.

Nel database, devo abbinare la chiave primaria con una delle colonne in modo che i record giusti siano aggiornati rispettosamente.

Se hai bisogno di ulteriori informazioni che posso fornire.

Brand new alla codifica mi dispiace se questa è una domanda facile o troppo generale.

Codice finora:

namespace ConsoleApplication1 { class Program { static void Main(string[] args) { foreach (string doc in Directory.GetFiles(@"C:\temp", "*.XLS")) { string connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;", doc); string workSheet = "Sheet1"; var adapter = new OleDbDataAdapter("SELECT * FROM [" + workSheet + "$]", connectionString); var importedExcelTable = new DataTable(); adapter.Fill(importedExcelTable); DataTable newExcelTable = new DataTable(); foreach (MileFile row in importedExcelTable.Rows) { DataRow mileFileRow = importedExcelTable.NewRow(); mileFileRow["TaxingDistrictID"] = row.TaxingDistrictID; mileFileRow["YearMonth"] = row.YearMonth; mileFileRow["Mileage"] = row.Mileage; mileFileRow["MileageAmount"] = row.MileageAmount; mileFileRow["FipsCode"] = row.FipsCode; newExcelTable.Rows.Add(mileFileRow); SqlConnection connection = new SqlConnection("data source=;database=test;uid=sa;pwd="); SqlCommand selectCommand = new SqlCommand("[job]_[SPROC GOES HERE)", connection); selectCommand.CommandType = CommandType.StoredProcedure; SqlParameter dbParam = selectCommand.Parameters.AddWithValue("@MileFileRow",newExcelTable); dbParam.SqlDbType = SqlDbType.Strucutred; } 

Ecco un esempio di metodo ac # che sta aggiornando una tabella basata su una stored procedure

  using (SqlConnection sqlcon = new SqlConnection(SQLConnectionStringGoesHere)) { using (SqlCommand comm = new SqlCommand("STOREDPROCEDURENAME_Goes_Here", sqlcon)) { using (SqlDataAdapter adapter = new SqlDataAdapter(comm)) { sqlcon.Open(); //Open the Connection and then begin a SQL Transaction using (SqlTransaction sqltran = sqlcon.BeginTransaction()) { comm.Transaction = sqltran; //begin tran comm.CommandType = CommandType.StoredProcedure; comm.Parameters.Add("@OBJECTID", SqlDbType.NVarChar).Value = csvOfIds; comm.Parameters.Add("@ANOTHERPARAMETER", SqlDbType.NVarChar).Value= "TEST"; int result = comm.ExecuteNonQuery(); //Execute Query sqltran.Commit();//Commit SQL transaction MessageBox.Show(string.Format("{0} Rows have been affected", result), "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Information); //Show how many rows were affected } } } }