Duplicare record

venerdì 22 marzo 2013 - 15.47
Tag Elenco Tags  VB.NET  |  Visual Studio 2008  |  MySQL 5.5

Mau67 Profilo | Expert

Ciao forum, ho un problema che non riesco a risolvere e stò impazzendo, devo consegnare il progetto e mi sono arenato spero che qualcuno mi aiuti perchè sono in crisi.
Praticamente devo duplicare i record di 6 tabelle che hanno in comune l'id praticamente con una procedura dovrei duplicare il record di ogni tabella che ha l'id uguale come faccio?
Chiedo aiuto grazie
Mau67

AntCiar Profilo | Expert

le tabelle sono a database oppure datatable in memoria?

Se ho capito bene devi clonare la riga con ID = n
Cristian Barca

Mau67 Profilo | Expert

le tabelle sono a database
ciao cristian grazie
Mau67

mexico77 Profilo | Junior Member

INSERT INTO nometabella( nomecampi ) Select nomecampi (devono essere gli stessi) From nometabella where id=id
www.setteweb.it

AntCiar Profilo | Expert

stavo per rispondere la stessa cosa.

Mi hai fregato sul tempo!!!

Ciao

Cristian Barca

mexico77 Profilo | Junior Member

Vabbè :-) capita.
www.setteweb.it

Mau67 Profilo | Expert

Grazie ad entrambi
devo duplicare più record che seleziono da listview ho provato a selezionarne 3 ma duplica solo un record come faccio a duplicarli tutti?

Mau67

AntCiar Profilo | Expert

basta che scorri gli elementi selezionati della listview in un ciclo e richiami l'istruzione sql N volte passando di volta in volta l'ID della voce selezionata nella listview
Cristian Barca

Mau67 Profilo | Expert

Perfetto, ultima domanda questo è il codice che ho scritto grazie al vostro aiuto
Dim objCommand As MySqlCommand = New MySqlCommand()
Dim id As ListViewItem
Dim idCollection As ListView.CheckedListViewItemCollection = Me.ListView1.CheckedItems
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = idCollection.Count
Me.ProgressBar1.Step = 1
Me.ProgressBar1.Value = Me.ProgressBar1.Minimum

For Each id In idCollection
If id.Checked = True Then

Try
objCommand.Connection = Connection
objCommand.CommandText = "INSERT INTO cartella_sanitaria (CodiceFiscale, PartitaIva, Visita, Data_Visita)" & _
"SELECT CodiceFiscale, PartitaIva, Visita, '" & ConvertData.GetDataForMySql(DateTimePicker1.Value) & "' FROM cartella_sanitaria WHERE ID = " & id.Text & ""
objCommand.CommandType = CommandType.Text

Connection.Open()
objCommand.ExecuteNonQuery()
Connection.Close()
'MessageBox.Show("Duplicata correttamente", "", MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show("Duplicazione fallita" + ControlChars.CrLf + ex.Message, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
End If

Me.ProgressBar1.PerformStep()
Next
Me.ProgressBar1.Value = Me.ProgressBar1.Minimum
MessageBox.Show("Duplicata correttamente", "", MessageBoxButtons.OK, MessageBoxIcon.Information)

Adesso immagino che devo ripeterlo per ogni tabella per la quale devo duplicare i record!

se devo poi mandarle tutte in esecuzione contemporaneamente e magari una o più tabelle non duplicano i dati per qualsiasi motivo vorrei che anche le altre non memorizzassero i dati e mi restituisse in msgbox con l'avviso d'errore.

Per me è la prima volta è possibile avere qualche riga di codice?

Grazie infinite
Mau67

mexico77 Profilo | Junior Member

Usa una transazione....se vanno bene tutte le query...ok altrimenti non ne fa nessuna.
www.setteweb.it

Mau67 Profilo | Expert

non le ho mai fatte non so come farle avresti un esempio perfavore?
Grazie
Mau67

mexico77 Profilo | Junior Member

conn.BeginTransaction() "Dove conn è la tua connessione"

QUI VANNO LE QUERY

strsql = "COMMIT" "strsql è la query"
cmdSql = New MySqlCommand(strsql, conn)
cmdSql.ExecuteNonQuery()

conn.Close()
www.setteweb.it

Mau67 Profilo | Expert

Ok grazie infinite siete stati il massimo ciao
Mau67

mexico77 Profilo | Junior Member

prego.
www.setteweb.it
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5