Copiare dati da datatable su tabella access

di il
1 risposte

Copiare dati da datatable su tabella access

Salve ragazzi,sono riuscito ad importare un foglio excel su un datagridview, ora dovrei spostare quei dati da datagridview (o datatable visto che sono presenti anche li) su una tabella access con gli stessi campi. Ecco il codice
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
		{
			//recupero dati da foglio excel a aggiorno datagridview
			String ^ connstring = " Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + openFileDialog1->FileName + "; Extended Properties = 'Excel 12.0 Xml; HDR = YES'";
			OleDbConnection ^connection = gcnew OleDbConnection(connstring);
			connection->Open(); //apro la connessione con il file excel
			OleDbCommand ^cmd1 = gcnew OleDbCommand("SELECT * " + "FROM [magricam$]", connection);
			OleDbDataAdapter ^ sda = gcnew OleDbDataAdapter();
			sda->SelectCommand = cmd1;
			//memorizzo dati nel datatable
			DataTable ^ dbdataset = gcnew DataTable();
			sda->Fill(dbdataset);
			BindingSource ^ bsource = gcnew BindingSource();
			bsource->DataSource = dbdataset;
			datagridauto->DataSource = bsource;
			sda->Update(dbdataset);
			
			//ora dovrei copiarli su database
			OleDbConnection ^connection2 = gcnew OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Provider=Microsoft.ACE.OLEDB.12.0;Data Source=database1.accdb;Persist Security Info=False;");
			connection2->Open();
			OleDbCommand ^cmd2 = gcnew OleDbCommand("INSERT INTO RICAMBI SELECT * FROM" + dbdataset + ";", connection2);
			cmd2->ExecuteNonQuery();
			
Il problema è l ultima insert su database. Chi può corregermi questo errorino?

1 Risposte

  • Re: Copiare dati da datatable su tabella access

    Scusa, dove hai letto che si può usare questa istruzione (a parte l'errore di sintassi):
    "INSERT INTO RICAMBI SELECT * FROM" + dbdataset + ";"
    A parte questo, io farei diversamente:
    1) prima importo i dati da Excel nella tabella
    2) poi carico i dati nel DGV dalla tabella
Devi accedere o registrarti per scrivere nel forum
1 risposte