Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Transazioni
venerdì 23 agosto 2013 - 10.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Visual Studio 2010
|
MySQL 5.5
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
ven 23 ago 2013 - 10:32
Buongiorno al forum,
oggi parliamo di transazioni praticament non riesco a fare delle trasazioni con inserimento di dati su 2 tabelle, praticamente la tabella 1 è composta da una transazione di una riga sola di record, la tabella 2 invece devo inserire piu record presi da una listview o da un dataset e fare la insert into nella tabella ma non riesco
Vi inserisco un codice con un condizione normale di 2 transazioni
Private Sub UpdateWithTransactions()
Dim conn As SqlConnection = New SqlConnection
conn.ConnectionString = "server=NOMEDBSERVER;database=NOMEDB;uid=USERID;pwd=PASSWORD;"
conn.Open()
Dim trans As SqlTransaction
trans = conn.BeginTransaction()
Try
Dim sql1 As String = "Insert INTO Tabella1 (campo) VALUES ('valore')"
Dim sql2 As String = "Insert INTO Tabella2 (campo1,campo2) VALUES ('valore1','valore2')"
Dim comm As SqlCommand = New SqlCommand
comm.Connection = conn
'Inizia la transazione
comm.Transaction = trans
'prima query
comm.CommandText = sql1
comm.ExecuteNonQuery()
'seconda query
comm.CommandText = sql2
comm.ExecuteNonQuery()
'eseguo la transazione
trans.Commit()
Response.Write("Fine elaborazione")
Catch ex As SqlException
'se si sono verificati errori faccio il rollback
trans.Rollback()
Response.Write(ex.ToString())
Finally
'chiudiamo sempre le connessioni!
conn.Close()
End Try
End Sub
mi aiutate a implementare la "sql2" tenendo conto cher i dati da inserire devono essere presi da una listview o da un dataset.
Grazie in anticipo
Mau67
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
ven 23 ago 2013 - 11:12
E che cosa accade?
VA IN ERRORE, NON SCRIVE NULLA?
Quale è il risultato?
Ciao
Riccardo D'Aria
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
ven 23 ago 2013 - 11:19
Adesso ho riscritto la transazione è questa:
Private Sub UpdateWithTransactions()
ConnMySQL.Open()
Dim trans As MySqlTransaction
trans = ConnMySQL.BeginTransaction()
Try
Dim sql1 As String = "INSERT INTO flussi (Dislocazione, Dislocazione1, Sezione, NrFlusso," & _
"DataFlusso, NrCM10, DataCM10, DislocazioneEnte, DislocazioneEnte1," & _
"SismeEnte, Reparto, Valore, Utente, Data)" & _
"VALUES (@Dislocazione, @Dislocazione1, @Sezione, @NrFlusso,@DataFlusso, @NrCM10, @DataCM10," & _
"@DislocazioneEnte, @DislocazioneEnte1, @SismeEnte, @Reparto, @Valore, @Utente, @Data)"
Dim sql2 As String = "INSERT INTO dettaglio_flussi (IDFlusso, Nuc, Quantita, Denominazione, Prezzo, Utente, Data)" & _
"VALUES (@IDFlusso, @Nuc, @Quantita, @Denominazione, @Prezzo, @Utente, @Data)"
Dim comm As MySqlCommand = New MySqlCommand
comm.Connection = ConnMySQL
'Inizia la transazione
comm.Transaction = trans
'prima query
comm.CommandText = sql1
comm.CommandType = CommandType.Text
comm.Parameters.AddWithValue("@Dislocazione", txtDislAmm.Text)
comm.Parameters.AddWithValue("@Dislocazione1", txtDislAmm1.Text)
comm.Parameters.AddWithValue("@Sezione", txtSezione.Text)
comm.Parameters.AddWithValue("@NrFlusso", txtNrFlusso.Text)
comm.Parameters.AddWithValue("@DataFlusso", ConvertData.GetDataForMySql(txtDataFlusso.Text))
comm.Parameters.AddWithValue("@NrCM10", txtNrCM10.Text)
comm.Parameters.AddWithValue("@DataCM10", ConvertData.GetDataForMySql(txtDataCM10.Text))
comm.Parameters.AddWithValue("@DislocazioneEnte", txtDislEnte.Text)
comm.Parameters.AddWithValue("@DislocazioneEnte1", txtDislEnte1.Text)
comm.Parameters.AddWithValue("@SismeEnte", txtSisme.Text)
comm.Parameters.AddWithValue("@Reparto", txtRep.Text)
comm.Parameters.AddWithValue("@Valore", CDec(TextBox2.Text))
comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
comm.Parameters.AddWithValue("@Data", Now)
comm.ExecuteNonQuery()
Dim cmd As New MySql.Data.MySqlClient.MySqlCommand("SELECT LAST_INSERT_ID()", ConnMySQL)
'aggiornamento della tabella locale
Dim lastId As Integer = CType(cmd.ExecuteScalar, Integer)
IDFLUSSO = (lastId)
TextBox3.Text = IDFLUSSO
FillDataSetAndViewFlussi()
'seconda query
comm.CommandText = sql2
Dim id As ListViewItem
Dim idCollection As ListView.CheckedListViewItemCollection = Me.ListView1.CheckedItems
For Each id In idCollection
If id.Checked = True Then
comm.CommandType = CommandType.Text
comm.Parameters.AddWithValue("@IDFlusso", lastId)
comm.Parameters.AddWithValue("@Nuc", id.Text)
comm.Parameters.AddWithValue("@Quantita", id.SubItems(1).Text)
comm.Parameters.AddWithValue("@Denominazione", id.SubItems(2).Text)
comm.Parameters.AddWithValue("@Prezzo", CDec(id.SubItems(3).Text))
comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
comm.Parameters.AddWithValue("@Data", Now)
FillDataSetAndViewDettaglioFlussi()
End If
Next
comm.ExecuteNonQuery()
'eseguo la transazione
trans.Commit()
MsgBox("Fine elaborazione")
Catch ex As MySqlException
'se si sono verificati errori faccio il rollback
trans.Rollback()
MsgBox(ex.ToString)
Finally
'chiudiamo sempre le connessioni!
ConnMySQL.Close()
End Try
End Sub
mi dà errori qui:
comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
comm.Parameters.AddWithValue("@Data", Now)
comm.Parameters.AddWithValue("@IDFlusso", lastId)
has already been definied
non capisco perchè
grazie
Mau67
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
ven 23 ago 2013 - 15:13
>Adesso ho riscritto la transazione è questa:
>
> Private Sub UpdateWithTransactions()
> ConnMySQL.Open()
> Dim trans As MySqlTransaction
> trans = ConnMySQL.BeginTransaction()
>
> Try
>Dim sql1 As String = "INSERT INTO flussi (Dislocazione, Dislocazione1,
>Sezione, NrFlusso," & _
>"DataFlusso, NrCM10, DataCM10, DislocazioneEnte, DislocazioneEnte1,"
>& _
>"SismeEnte, Reparto, Valore, Utente, Data)" & _
>"VALUES (@Dislocazione, @Dislocazione1, @Sezione, @NrFlusso,@DataFlusso,
>@NrCM10, @DataCM10," & _
>"@DislocazioneEnte, @DislocazioneEnte1, @SismeEnte, @Reparto,
>@Valore, @Utente, @Data)"
>
>Dim sql2 As String = "INSERT INTO dettaglio_flussi (IDFlusso,
>Nuc, Quantita, Denominazione, Prezzo, Utente, Data)" & _
>"VALUES (@IDFlusso, @Nuc, @Quantita, @Denominazione, @Prezzo,
>@Utente, @Data)"
> Dim comm As MySqlCommand = New MySqlCommand
> comm.Connection = ConnMySQL
>
> 'Inizia la transazione
> comm.Transaction = trans
> 'prima query
> comm.CommandText = sql1
> comm.CommandType = CommandType.Text
>comm.Parameters.AddWithValue("@Dislocazione", txtDislAmm.Text)
>comm.Parameters.AddWithValue("@Dislocazione1", txtDislAmm1.Text)
>comm.Parameters.AddWithValue("@Sezione", txtSezione.Text)
>comm.Parameters.AddWithValue("@NrFlusso", txtNrFlusso.Text)
>comm.Parameters.AddWithValue("@DataFlusso", ConvertData.GetDataForMySql(txtDataFlusso.Text))
>comm.Parameters.AddWithValue("@NrCM10", txtNrCM10.Text)
>comm.Parameters.AddWithValue("@DataCM10", ConvertData.GetDataForMySql(txtDataCM10.Text))
>comm.Parameters.AddWithValue("@DislocazioneEnte", txtDislEnte.Text)
>comm.Parameters.AddWithValue("@DislocazioneEnte1", txtDislEnte1.Text)
>comm.Parameters.AddWithValue("@SismeEnte", txtSisme.Text)
>comm.Parameters.AddWithValue("@Reparto", txtRep.Text)
>comm.Parameters.AddWithValue("@Valore", CDec(TextBox2.Text))
>comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
> comm.Parameters.AddWithValue("@Data", Now)
> comm.ExecuteNonQuery()
>
>
>Dim cmd As New MySql.Data.MySqlClient.MySqlCommand("SELECT LAST_INSERT_ID()",
>ConnMySQL)
> 'aggiornamento della tabella locale
>Dim lastId As Integer = CType(cmd.ExecuteScalar, Integer)
> IDFLUSSO = (lastId)
> TextBox3.Text = IDFLUSSO
>
> FillDataSetAndViewFlussi()
>
> 'seconda query
> comm.CommandText = sql2
> Dim id As ListViewItem
>Dim idCollection As ListView.CheckedListViewItemCollection =
>Me.ListView1.CheckedItems
>
> For Each id In idCollection
> If id.Checked = True Then
> comm.CommandType = CommandType.Text
>comm.Parameters.AddWithValue("@IDFlusso", lastId)
>comm.Parameters.AddWithValue("@Nuc", id.Text)
>comm.Parameters.AddWithValue("@Quantita", id.SubItems(1).Text)
>comm.Parameters.AddWithValue("@Denominazione", id.SubItems(2).Text)
>comm.Parameters.AddWithValue("@Prezzo", CDec(id.SubItems(3).Text))
>comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
>comm.Parameters.AddWithValue("@Data", Now)
>
> FillDataSetAndViewDettaglioFlussi()
> End If
> Next
>
> comm.ExecuteNonQuery()
> 'eseguo la transazione
> trans.Commit()
> MsgBox("Fine elaborazione")
> Catch ex As MySqlException
> 'se si sono verificati errori faccio il rollback
> trans.Rollback()
> MsgBox(ex.ToString)
> Finally
> 'chiudiamo sempre le connessioni!
> ConnMySQL.Close()
> End Try
> End Sub
>
>mi dà errori qui:
>comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
> comm.Parameters.AddWithValue("@Data", Now)
> comm.Parameters.AddWithValue("@IDFlusso", lastId)
>has already been definied
>
>non capisco perchè
>grazie
>Mau67
ok
semplice
i tre parametri che ti mostra nell'errore sono già stati specificati ed in uso nella transazione.
infatti li utilizzi nella prima query.
In questo caso, prima della seconda query devi rimuovere i parametri con un removeAt:
comm.RemoveAt (nomeparametroInUso)
e lo fai per tutti i parametri già usati e che devi riutilizzare, mi sembra sian solo i tre chge ti da nell'errore ;-)
Fammi sapere. Se ok chiudi il post cliccando su Accetta.
Ciao!
Riccardo D'Aria
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
ven 23 ago 2013 - 17:16
Ciao grazie per la risposta, volevo chiederti se rimuovo i tre parametri facendo il ciclo con gli altri parametri i tre quei tre me li memorizza in tabella.?
Adesso non ho la possibilità di controllare fino a lunedì
Ciao grazie
Mau67
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
sab 24 ago 2013 - 08:49
>Ciao grazie per la risposta, volevo chiederti se rimuovo i tre
>parametri facendo il ciclo con gli altri parametri i tre quei
>tre me li memorizza in tabella.?
che intendi facendo il ciclo con gli altri parametri?
devi rimuovere i tre parametri con removeAt, dopo aver eseguito la prima query e prima di eseguire la seconda query, che se non erro viene eseguita nella routine: FillDataSetAndViewFlussi
Se li rimuovi nel momento giusto nn subisci alcuna perdita di dati ;-)
>Adesso non ho la possibilità di controllare fino a lunedì
>Ciao grazie
>Mau67
Prego
Riccardo D'Aria
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
sab 24 ago 2013 - 08:58
Ok lunedì provo poi ti faccio sapere grazie
Mau67
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
lun 26 ago 2013 - 09:23
Buongiorno allora ho inserito i RemoveAt spero di aver fatto giusto ma da problemi con le date ti posto tutto il codice
Private Sub UpdateWithTransactions()
ConnMySQL.Open()
Dim trans As MySqlTransaction
trans = ConnMySQL.BeginTransaction()
Try
Dim sql1 As String = "INSERT INTO flussi (Dislocazione, Dislocazione1, Sezione, NrFlusso," & _
"DataFlusso, NrCM10, DataCM10, DislocazioneEnte, DislocazioneEnte1," & _
"SismeEnte, Reparto, Valore, Utente, Data)" & _
"VALUES (@Dislocazione, @Dislocazione1, @Sezione, @NrFlusso,@DataFlusso, @NrCM10, @DataCM10," & _
"@DislocazioneEnte, @DislocazioneEnte1, @SismeEnte, @Reparto, @Valore, @Utente, @Data)"
Dim sql2 As String = "INSERT INTO dettaglio_flussi (NrCM10, Nuc, Quantita, Denominazione, Prezzo, Utente, Data, DataCM10, Dislocazione, Dislocazione1, SismeEnte)" & _
"VALUES (@NrCM10, @Nuc, @Quantita, @Denominazione, @Prezzo, @Utente, @Data, @DataCM10, @Dislocazione,@Dislocazione1,@SismeEnte)"
Dim comm As MySqlCommand = New MySqlCommand
comm.Connection = ConnMySQL
'Inizia la transazione
comm.Transaction = trans
'prima query
comm.CommandText = sql1
comm.CommandType = CommandType.Text
comm.Parameters.AddWithValue("@Dislocazione", txtDislAmm.Text)
comm.Parameters.AddWithValue("@Dislocazione1", txtDislAmm1.Text)
comm.Parameters.AddWithValue("@Sezione", txtSezione.Text)
comm.Parameters.AddWithValue("@NrFlusso", txtNrFlusso.Text)
comm.Parameters.AddWithValue("@DataFlusso", ConvertData.GetDataForMySql(txtDataFlusso.Text))
comm.Parameters.AddWithValue("@NrCM10", txtNrCM10.Text)
comm.Parameters.AddWithValue("@DataCM10", ConvertData.GetDataForMySql(txtDataCM10.Text))
comm.Parameters.AddWithValue("@DislocazioneEnte", txtDislEnte.Text)
comm.Parameters.AddWithValue("@DislocazioneEnte1", txtDislEnte1.Text)
comm.Parameters.AddWithValue("@SismeEnte", txtSisme.Text)
comm.Parameters.AddWithValue("@Reparto", txtRep.Text)
comm.Parameters.AddWithValue("@Valore", CDec(TextBox2.Text))
comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
comm.Parameters.AddWithValue("@Data", Now)
comm.ExecuteNonQuery()
Dim cmd As New MySql.Data.MySqlClient.MySqlCommand("SELECT LAST_INSERT_ID()", ConnMySQL)
'aggiornamento della tabella locale
Dim lastId As Integer = CType(cmd.ExecuteScalar, Integer)
IDFLUSSO = (lastId)
TextBox3.Text = IDFLUSSO
FillDataSetAndViewFlussi()
Try
comm.Parameters.RemoveAt("@NrCM10")
comm.Parameters.RemoveAt("@Utente")
comm.Parameters.RemoveAt("@Data")
comm.Parameters.RemoveAt(ConvertData.GetDataForMySql("@DataCM10"))
comm.Parameters.RemoveAt("@Dislocazione")
comm.Parameters.RemoveAt("@Dislocazione1")
comm.Parameters.RemoveAt("@SismeEnte")
'seconda query
comm.CommandText = sql2
Dim id As ListViewItem
Dim idCollection As ListView.CheckedListViewItemCollection = Me.ListView1.CheckedItems
For Each id In idCollection
If id.Checked = True Then
comm.CommandType = CommandType.Text
comm.Parameters.AddWithValue("@NrCM10", txtNrCM10.Text)
comm.Parameters.AddWithValue("@Nuc", id.Text)
comm.Parameters.AddWithValue("@Quantita", id.SubItems(1).Text)
comm.Parameters.AddWithValue("@Denominazione", id.SubItems(2).Text)
comm.Parameters.AddWithValue("@Prezzo", CDec(id.SubItems(3).Text))
comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
comm.Parameters.AddWithValue("@Data", Now)
comm.Parameters.AddWithValue("@DataCM10", ConvertData.GetDataForMySql(txtDataCM10.Text))
comm.Parameters.AddWithValue("@Dislocazione", txtDislAmm.Text)
comm.Parameters.AddWithValue("@Dislocazione1", txtDislAmm1.Text)
comm.Parameters.AddWithValue("@SismeEnte", txtSisme.Text)
FillDataSetAndViewDettaglioFlussi()
End If
Next
comm.ExecuteNonQuery()
'eseguo la transazione
trans.Commit()
MsgBox("Fine elaborazione")
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
Catch ex As MySqlException
'se si sono verificati errori faccio il rollback
trans.Rollback()
MsgBox(ex.ToString)
Finally
'chiudiamo sempre le connessioni!
ConnMySQL.Close()
End Try
End Sub
Se puoi dargli un occhiata e verificare se ci sono errori a me dà l'errore (cast non valido della stringa "@DataCM10" al tipo 'Date')
grazie
Mau67
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mer 28 ago 2013 - 09:15
DataCM10
è il formato della data che gli passi che non collima con quello predisoposto nel campo.
La tranzazione adesso ti funziona e il removeAt fa il suo lavoro.
CIAO
Riccardo D'Aria
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mer 28 ago 2013 - 16:14
!!!
comm.Parameters.RemoveAt(ConvertData.GetDataForMySql("@DataCM10"))
il removeAt ti da errore perché tu lo usi in questo modo.
echiaramente lui tenta di convertire qualcosa che non ha.
il giusto comando è:
comm.Parameters.RemoveAt("@DataCM10")
ciao fammi sapere e chiudi il post cliccando su accetta se tutto è OK
CIAO
Riccardo D'Aria
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
ven 30 ago 2013 - 10:52
Hai risolto?
Se sì, gentilmente chiuderesti il post, cliccndo su accetta!
CIAO
Riccardo D'Aria
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
ven 30 ago 2013 - 15:53
Il problema non è ancora risolto mi da problemi su tutti i parametri non so come risolvere il removeat non va bene
Mau67
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
ven 30 ago 2013 - 16:59
hai corretto come ti ho appena detto?
mi posti l'errore?
Ciao
Riccardo D'Aria
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
ven 30 ago 2013 - 17:10
Te lo do lunedì che ritorno in ufficio Buon fine settimana
Mau67
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
lun 2 set 2013 - 15:15
l'errore che da è il seguente Parameter'@NrCM10' has already been defined
lo ripete per tutti i paramentri
Mau67
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
lun 2 set 2013 - 16:32
>l'errore che da è il seguente Parameter'@NrCM10' has already been defined
ecco è chiarissimo:
il parametro talDeTali è stato già definito.
devi appunto rimuoverli prima di eseguire la seconda query.
Poi vedo che le due query, le esegui in due routine differenti.
ed in particolare vedo che nella seconda routine esegui:
comm.Parameters.RemoveAt("@NrCM10")
comm.Parameters.RemoveAt("@Utente")
comm.Parameters.RemoveAt("@Data")
comm.Parameters.RemoveAt(ConvertData.GetDataForMySql("@DataCM10"))
comm.Parameters.RemoveAt("@Dislocazione")
comm.Parameters.RemoveAt("@Dislocazione1")
comm.Parameters.RemoveAt("@SismeEnte")
ma come è possibile se l' sqlCommand "comm" lo hai dichiarato nella prima routine e non nella seconda??
Vedo anche che esgui due routine differenti, fai tutto in una unica routine, visto che l'operazione è unica; ma questo e solo un suggerimento.
CMQ l'errore è chiaro i parametri sono già definiti! devi rimuoverli.
CIAO
Riccardo D'Aria
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
lun 2 set 2013 - 18:47
Se rileggi il codice che ti ho postato vedi che prima di iniziare la seconda transazione rimuovo i parametri e proprio li mi genera l'errore!!!
Io voglio accettare il tuo consiglio ma come faccio a fare un unica routine visto che le tabelle sono 2 ? Potresti mostrarmi com il mio codice come fare grazie
Mau67
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 3 set 2013 - 09:40
ok , ho notato che fai un loop nella seconda routine.
ecco anche lì devi rimuovere i paramatri ,
in questo caso li devi rimuovere ad ogni passaggio nel loop.
in particolare li rimuovo con un ciclo sulla lista dei parametri come segue:
For j = 0 To command.Parameters.Count - 1
command.Parameters.RemoveAt(0)
Next
CIAO fammi sapere
Riccardo D'Aria
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
mar 3 set 2013 - 10:54
Scusa ma non ho capito in cher posizione del codice devo mettere questo ?
For j = 0 To command.Parameters.Count - 1
command.Parameters.RemoveAt(0)
Next
Mau67
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 3 set 2013 - 12:33
>Scusa ma non ho capito in cher posizione del codice devo mettere
>questo ?
>
For Each id In idCollection
If id.Checked = True Then
comm.CommandType = CommandType.Text
comm.Parameters.AddWithValue("@NrCM10", txtNrCM10.Text)
comm.Parameters.AddWithValue("@Nuc", id.Text)
comm.Parameters.AddWithValue("@Quantita", id.SubItems(1).Text)
comm.Parameters.AddWithValue("@Denominazione", id.SubItems(2).Text)
comm.Parameters.AddWithValue("@Prezzo", CDec(id.SubItems(3).Text))
comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
comm.Parameters.AddWithValue("@Data", Now)
comm.Parameters.AddWithValue("@DataCM10", ConvertData.GetDataForMySql(txtDataCM10.Text))
comm.Parameters.AddWithValue("@Dislocazione", txtDislAmm.Text)
comm.Parameters.AddWithValue("@Dislocazione1", txtDislAmm1.Text)
comm.Parameters.AddWithValue("@SismeEnte", txtSisme.Text)
>For j = 0 To command.Parameters.Count - 1
> command.Parameters.RemoveAt(0)
> Next
comm.ExecuteNonQuery() 'ed anche questo va qui ad ogni loop e poi fuori dal loop fai il comit della teransazione come già fai adesso
FillDataSetAndViewDettaglioFlussi()
End If
Next
CIAO
Riccardo D'Aria
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
mar 3 set 2013 - 13:08
Va fatto cosi?
For Each id In idCollection
If id.Checked = True Then
comm.CommandType = CommandType.Text
comm.Parameters.AddWithValue("@NrCM10", txtNrCM10.Text)
comm.Parameters.AddWithValue("@Nuc", id.Text)
comm.Parameters.AddWithValue("@Quantita", id.SubItems(1).Text)
comm.Parameters.AddWithValue("@Denominazione", id.SubItems(2).Text)
comm.Parameters.AddWithValue("@Prezzo", CDec(id.SubItems(3).Text))
comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
comm.Parameters.AddWithValue("@Data", Now)
comm.Parameters.AddWithValue("@DataCM10", ConvertData.GetDataForMySql(txtDataCM10.Text))
comm.Parameters.AddWithValue("@Dislocazione", txtDislAmm.Text)
comm.Parameters.AddWithValue("@Dislocazione1", txtDislAmm1.Text)
comm.Parameters.AddWithValue("@SismeEnte", txtSisme.Text)
>For j = 0 To command.Parameters.Count - 1
> command.Parameters.RemoveAt(0)
> Next
comm.ExecuteNonQuery() 'ed anche questo va qui ad ogni loop e poi fuori dal loop fai il comit della teransazione come già fai adesso
FillDataSetAndViewDettaglioFlussi()
End If
Next
il problema è che mi inserisce un record vuoto e basta
Mau67
ridaria
Profilo
| Expert
905
messaggi | Data Invio:
mar 3 set 2013 - 16:20
>Va fatto cosi?
>For Each id In idCollection
> If id.Checked = True Then
> comm.CommandType = CommandType.Text
> comm.Parameters.AddWithValue("@NrCM10", txtNrCM10.Text)
> comm.Parameters.AddWithValue("@Nuc", id.Text)
>comm.Parameters.AddWithValue("@Quantita", id.SubItems(1).Text)
>comm.Parameters.AddWithValue("@Denominazione", id.SubItems(2).Text)
>comm.Parameters.AddWithValue("@Prezzo", CDec(id.SubItems(3).Text))
>comm.Parameters.AddWithValue("@Utente", My.Settings.usernameUt)
> comm.Parameters.AddWithValue("@Data", Now)
>comm.Parameters.AddWithValue("@DataCM10", ConvertData.GetDataForMySql(txtDataCM10.Text))
>comm.Parameters.AddWithValue("@Dislocazione", txtDislAmm.Text)
>comm.Parameters.AddWithValue("@Dislocazione1", txtDislAmm1.Text)
> comm.Parameters.AddWithValue("@SismeEnte", txtSisme.Text)
>
>>For j = 0 To command.Parameters.Count - 1
>> command.Parameters.RemoveAt(0)
>> Next
>
>comm.ExecuteNonQuery() 'ed anche questo va qui ad ogni loop e
>poi fuori dal loop fai il comit della teransazione come già fai
>adesso
>
> FillDataSetAndViewDettaglioFlussi()
> End If
> Next
>
>il problema è che mi inserisce un record vuoto e basta
ma il primo punto, quello dell'errore sul parametro:
Parameter'@NrCM10' has already been defined
te lo da ancora questo errore?
se no, chiudi il post accettando, così chiudiamo questo argomento.
Per il resto crea un altro post sul forum.
Ciao
Riccardo D'Aria
Mau67
Profilo
| Expert
917
messaggi | Data Invio:
mar 3 set 2013 - 17:18
l'errore non lo da comunque non ho risolto l'esecuzione delle transazioni
Chiudo il post grazie
Mau67
Torna su
Stanze Forum
Elenco Threads
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 !