Aiuto su cancellare record in database

giovedì 27 agosto 2009 - 16.40

wasabiw Profilo | Newbie

Ciao a tutti, son da poco passato a VB.NET da VB6, ed ho incontrato un problema, cioè devo cancellare TUTTI i record presenti in una tabella di un database mdb.
Su VB6 usavo questo metodo:

Dim cn4 As ADODB.Connection
Set cn4 = New ADODB.Connection
cn4.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=NOMEDATABASE;Persist Security Info=False"
cn4.Open
Dim strSQL4 As String
strSQL4 = "DELETE from NOMETABELLA"
cn4.Execute strSQL4
cn4.Close

Ma su VB.NET non sono riuscito a trovare un modo per farlo. Qualcuno mi può aiutare?
Grazie,
Alessio

alx_81 Profilo | Guru

>Ciao a tutti, son da poco passato a VB.NET da VB6, ed ho incontrato
>un problema, cioè devo cancellare TUTTI i record presenti in
>una tabella di un database mdb.
ciao


>Ma su VB.NET non sono riuscito a trovare un modo per farlo. Qualcuno
>mi può aiutare?
devi usare ADO.Net e gli oggetti da considerare per ottenere un codice "simile" sono questi:

OledbConnection
http://msdn.microsoft.com/it-it/library/system.data.oledb.oledbconnection%28VS.80%29.aspx

OledbCommand
http://msdn.microsoft.com/it-it/library/system.data.oledb.oledbcommand%28VS.80%29.aspx

E per ottimizzarne l'utilizzo, il costrutto Using:
http://msdn.microsoft.com/en-us/library/htd05whh%28VS.80%29.aspx

>Grazie,
di nulla!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

wasabiw Profilo | Newbie

Grazie mille per l'aiuto ma non riesco a farcela... non è che mi potresti postare un esempio di codice?

ancora grazie

Come non detto, ce l'ho fatta!!! Posto il codice nel caso qualcuno ne avesse bisogno!!

Dim objconn As OleDbConnection
Dim stringaconn As String
Dim stringasql As String
Dim objcomm As OleDbCommand
stringaconn = "Provider=Microsoft.JET.OLEDB.4.0;Data Source="
stringaconn = stringaconn & "c:\test\prova.mdb"
objconn = New OleDbConnection(stringaconn)
objconn.Open()
stringasql = "DELETE FROM TABELLA"
objcomm = New OleDbCommand(stringasql, objconn)
Dim risputente As Integer
Try
risputente = objcomm.ExecuteNonQuery()
If risputente = 1 Then
MsgBox("OK")
objconn.Close()
End If
End Try

objconn.Close()

alx_81 Profilo | Guru

>Come non detto, ce l'ho fatta!!! Posto il codice nel caso qualcuno ne avesse bisogno!!
Ottimo lavoro. Mi permetto di indicarti un paio di consigli in più:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

1 - Usa il costrutto USING che ottimizza le operazioni in memoria (dispose) degli oggetti.
2 - Non sovraccaricare di variabili qualora non siano veramente utili anche ai fini della leggibilità
3 - Non usare MsgBox, è deprecato e solo di VB
4 - Usa i costruttori delle classi (conn e cmd) in questo modo eviti righe di codice che puoi facilmente implementare con una New
5 - Gestisci l'eccezione con una catch, non usare Try solamente.

Spero possa esserti di aiuto.
Scusami ma non ho fatto in tempo a farti il codice prima.
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

wasabiw Profilo | Newbie

Nessun problema, grazie dei consigli!!
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5