Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    10

    Comparazione VB6 vs .NET

    Buonasera a tutti i presenti,

    ho iniziato a studiare e a comparare VB6 con .Net, ho un quesito a cui nei
    vari testi non ho trovato, o saputo trovare, risposta:

    Questo è una parte di codice di una mia applicazione in VB6 che usa il
    sistema command:

    Dim cn As ADODB.Connection
    Dim cmd As New ADODB.Command
    With cmd
    .ActiveConnection = cn 'cn connessione esistente già aperta con DB Access
    .CommandType = adCmdText
    .CommandText = "delete from ditte_esterne where ideste=" & id_ditta
    .Execute
    .ActiveConnection = Nothing
    EndWith


    ed è equivalente, almeno credo, a questo scritto in VB .Net:

    Imports System.Data.Oledb
    Dim objconn As OleDbConnection
    Dim objcomm As OleDbCommand
    Dim stringasql As String
    Dim stringaconn As String
    objconn=New OleDbConnection(stringaconn) 'sopprassediamo con i dati della
    stringa di connessione
    stringasql="delete from ditte_esterne where ideste=" & @id_ditta
    with objconn
    .Open()
    objcomm=New OleDbCommand(stringasql,objconn)
    objcomm.ExecuteNonQuery()
    .Close()
    end with


    Vorrei, cortesemente, che qualcuno mi indicasse, parimenti, il codice VB .Net
    equivalente a questo VB6, che non usa il sistema "command - insert into" ma
    quello del recordset (addnew):

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim stringaconn As String
    Dim sqlagg As String

    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    sqlagg = "select * from varie where idreg=" & idrapp _
    & " and idriga=" & idriga_varie

    cn.Open stringaconn 'la stringa di connessione al DB di Access

    Wit rs

    .CursorLocation = adUseClient

    .LockType = adLockBatchOptimistic

    .Open sqlagg, cn, , , adCmdText

    .ActiveConnection = Nothing

    If .EOF Then

    .AddNew

    !idreg = CLng(idrapp)

    End If

    !costo = CDbl(txtcosto_varie.text)

    !descli = txtdescli.text

    !desditta = txtdesditta.text

    .ActiveConnection = cn

    .UpdateBatch

    .Close

    EndWith


    Set cn = Nothing
    Set rs = Nothing


    Non sono riuscito a trovare un codice equivalente in VB .Net che non sia
    quello che usa la "ExecuteNonQuery()".
    cerco qualcosa di equivalente al comando "addnew" e al prefisso "!".

    Grazie e ciao.
    ZioSam56

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    10
    Salve a tutti, possibile che dopo che l'hanno visto in 156, nessuno sia in grado di risponderea questo topic?

    Grazie e saluti.
    ZioSam56

  3. #3
    Non mi risulta esista nulla del genere in VB.NET, la sintassi ADO che si usava in VB6 te la devi proprio dimenticare... Concettualmente il Dataset (ADO.NET) potrebbe fare al caso tuo, se fai una ricerca sul forum o sul web dovresti trovare parecchio materiale.

    La documentazione ufficiale di ADO.NET la trovi qui.
    Chi non cerca trova.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2010
    Messaggi
    10
    Grazie, peccato, perchè mi ci ero abituato bene alla sintassi di Ado.

    Comunque vediamo cosa si può fare, nel senso di ottimizzare il codice, come facevo con Ado, con .Net.

    Grazie di nuovo e saluti.
    ZioSam56

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    473
    Ciao sg13040
    Mi trovo nella tua stessa condizione, sto imparando vb.net e non mi ci trovo molto,

    Puoi postarmi un po di codice di esempio per fare una query?

    Grazie!

    Ciao!

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da androita
    Mi trovo nella tua stessa condizione, sto imparando vb.net e non mi ci trovo molto,
    Puoi postarmi un po di codice di esempio per fare una query?
    Non si risollevano discussioni vecchie, soprattutto per porre altre domande e in modo particolare quando si ha già una discussione attiva sull'argomento, che peraltro è il duplicato di un'altra discussione del tutto identica.

    Ti esorto ad astenerti dall'aprire e risollevare discussioni per porre lo stesso identico problema, poiché il forum non è incline a parlare ovunque e costantemente del tuo quesito personale.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.