Salve a tutti,
da poco utilizzo delle classi apposite per integarire con il database, ma ognitanto il mio db server mi va in palla perchè evidentemente non chiudo correttamente la connessione al DB (problemi di spooler che sinceramente non so cosa siano!).
Rivedendo le classi in efeftti mi sono accorto che la connessione non viene chiusa quando c'è un errore, allora volevo chiedere a voi un aiuto su come impostare correttamente la procedura.
Vi posto una routine di scrittura sul DB e vi chiedo se così può andar bene o se invece devo modificarla in qualche modo:
Un'altra cosa: è necessario anche fare un "cn.Dispose()" dopo aver chiuso la connessione?codice:Public Sub Salva(ByVal strStringaConnessione As String) ' Variabili Locali ' Dim cmd_Scrive As New SqlCommand Dim cn As New SqlConnection(strStringaConnessione) Dim SQL_Scrive As String = vbNullString ' ' Salva Dati ' Try cmd_Scrive.Connection = cn cn.Open() ' SQL_Scrive &= "INSERT INTO MyTable" SQL_Scrive &= "( " SQL_Scrive &= "dato1, " SQL_Scrive &= "dato2, " SQL_Scrive &= "dato3 " SQL_Scrive &= ") " SQL_Scrive &= "VALUES " SQL_Scrive &= "( " SQL_Scrive &= "@dato1, " SQL_Scrive &= "@dato2, " SQL_Scrive &= "@dato3 " SQL_Scrive &= ") " ' cmd_Scrive.Parameters.AddWithValue("@dato1", SqlDbType.NText).Value = dato1 cmd_Scrive.Parameters.AddWithValue("@dato2", SqlDbType.NText).Value = dato2 cmd_Scrive.Parameters.AddWithValue("@dato3", SqlDbType.NText).Value = dato3 ' cmd_Scrive.CommandText = SQL_Scrive cmd_Scrive.ExecuteNonQuery() Catch ex As Exception ' Visualizza Messaggio di Errore ' MessageBox.Show(ex.Message) Finally ' Chiude la connessione se aperta ' If Not cn Is Nothing Then cn.Close() End Try End Sub
GRAZIE MILLE a tutti.
Igor

Rispondi quotando