Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [vb.net] dll e passaggio recordset

    Prima in VB6 nella mia dll scrivevo così:

    Public Function MyList(ByVal strSQL As String) As ADODB.Recordset
    Set rs = New ADODB.Recordset

    Set Conn = New ADODB.Connection
    Conn.Open strConn
    rs.Open strSQL, Conn, 1, 3
    If Not rs.BOF And Not rs.EOF Then
    Set MyList= rs.Clone
    Else
    Set MyList= Nothing
    End If

    rs.Close
    Set rs = Nothing
    Set Conn = Nothing
    End Function

    Come si fa in vbNET a passare recordset ed utilizzarlo nel codice del progetto che contiene la dll?
    ::Scegli se sarai Rullo o la Strada ::

  2. #2
    a meno di non usare il vecchio oggetto ado in .NET non esiste più il concetto di recordset.

    ADONET fornisce svariati oggetti fra i quali il datareader, il dataset o la datatable

    puoi creare una funzione che restituisca uno di questi oggetti. Se vuoi ti posso scrivere un po' di codice

  3. #3
    Ciao,
    si mi era già chiaro che non esiste il concetto di recordset.
    La mia domanda è: qual'è l'equivalente di quello che scrivevo in vb6?
    cosa devo passare? un datareader? e come lo uso nel mio progetto?
    ::Scegli se sarai Rullo o la Strada ::

  4. #4
    si, il dataread è la la classe che si avvicina di più ad un recodset, è in sola lettura e può muoversi solo in avanti nella lettura dei record. Ora ti scrivo un esempio dammi 5 min.

  5. #5
    Scritto in Visual Studio 2003


    codice:
    Imports System.Data.OleDb
    
    Public Class Form1
        Inherits System.Windows.Forms.Form
    
    'qui codice grafico per la form
    
        Private ConnectionString As String
        Private Connection As OleDb.OleDbConnection
        Private Command As OleDb.OleDbCommand
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            Dim cmdText As String
            cmdText = "SELECT * FROM ComboValues"
            Dim oDr As OleDb.OleDbDataReader = GetDataReader(cmdText)
    
            'Ora posso usare il dataread per, ad esempio popolare la mia combobox
            'RICORDARSI DI CHIUDERLO, e di chiudere la connessione
            While (oDr.Read())
                ComboBox1.Items.Add(oDr("valori")) 'valori è il nome del campo della tabella ComboValues che contiene i valori edlla combo
            End While
    
            oDr.Close()
            Connection.Close()
    
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;OLE DB Services=-2;Data Source=db.mdb;"
            Connection = New OleDb.OleDbConnection(ConnectionString)
    
        End Sub
    
        Private Function GetDataReader(ByVal cmdText As String) As OleDb.OleDbDataReader
    
            Dim RetValue As OleDb.OleDbDataReader
            Connection.Open()
            Command = New OleDb.OleDbCommand(cmdText, Connection)
            RetValue = Command.ExecuteReader()
            Return RetValue
        End Function
    
    End Class

  6. #6
    Grazie per questo tuo esempio!
    Per farti capire , prendendo di riferimento il tuo esempio sbagliavo qua:

    Dim oDr As OleDb.OleDbDataReader
    io scrivo semplicemente
    Dim oDr As Object


    Grazie davvero!
    ciao!
    ::Scegli se sarai Rullo o la Strada ::

  7. #7
    considera che l'ho scritto di getto..
    .
    quel Connection.Open() dentro la funzione non si può vedere... andrebbe messo in una funzione ApriConnessione() e metterne un'altra ChiudiConnessione() oppure aprila direttamente nel Form_Load e chiudera quando sono finiti gli accessi al dB

    buon proseguimento

  8. #8
    sei stato fin troppo gentile, ora cerco di organizzare tutto il codice al meglio.
    GRAZIE ancora.
    ::Scegli se sarai Rullo o la Strada ::

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.