Utilizza il lettore sql vb.net come delegato per raccogliere dati

0

C'è un modo per usare un sub per creare un loop, ma cambiare il contenuto dell'interno del loop?

Non so cosa non lo so. Continuo a guardare questo codice e ho la sensazione che sia possibile.

Public Sub SQLQuery(SQLQuery_Command As String)
    Dim SQLSERVER_Connection As New SqlConnection With {.ConnectionString = "Server=localhost;Database=localdatabase;User ID=TheUserName;Password=ThePassword;"}
    Dim SQLSERVER_Query As SqlCommand
    Try
        SQLSERVER_Query = New SqlCommand(SQLQuery_Command, SQLSERVER_Connection)
        SQLSERVER_Connection.Open()
        Dim SQLSERVER_Reader As SqlDataReader = SQLSERVER_Query.ExecuteReader()
        While SQLSERVER_Reader.Read()

            'I want to change this part from a call.

        End While
        SQLSERVER_Reader.Close()
        SQLSERVER_Query.Dispose()
        SQLSERVER_Connection.Close()
    Catch ex As Exception
        WriteLog(String.Format("Issue with MSSQL Query connection attempt. {0}", ex.Message))
    End Try
End Sub

Fondamentalmente voglio metterlo in una classe, e quindi usarlo per le letture dal database. Il problema è che voglio cambiare ciò che ottengo tra il while / end mentre parte. Come l'SQL può essere qualcosa di simile;

SELECT * FROM table

Tra il while / end mentre userei qualcosa del tipo;

Records.Add(SQLSERVER_Reader(0))

Ma in un altro posto vorrei usare qualcosa del tipo;

txtBox1.text = SQLSERVER_Reader("Some Data")
txtBox2.text = SQLSERVER_Reader("Other Data")

Mi sento come qualcosa di simile;

Using SQLQuery("SELECT * FROM table")
    'What ever I want between the While/End While
End Using

Non so se è possibile, ma ho deciso di chiedere. Se c'è, mi farebbe risparmiare un sacco di codice nel mio attuale progetto.

Modifica:

Ho letto dei delegati. Non riesco proprio a capire come si fa. Come posso ottenere quanto segue tra While / End While above?

Public Delegate Sub SQLQueryReturn(ByVal SQLQuery_Command As String)
Private Sub cmdTest_Click(sender As System.Object, e As System.EventArgs) Handles cmdTest.Click
    Dim SQLQuery2 As SQLQueryReturn = New SQLQueryReturn(AddressOf SQLQuery)
End Sub

Sub FillTextBoxes()
    'txtTest1.Text = SQLSERVER_Reader("Column Name")
End Sub

Non riesco a capire come ottenere il

SQLSERVER_Reader("Column Name")

Lì e mi sto sconcertando per questo. Il suo aspetto è che devo fare il codice SQLQuery_Command ogni volta e poi inserire il Delegato nel codice, che è l'opposto di quello che volevo fare. Voglio salvare il codice per l'accesso al database una volta e modificare solo l'istruzione SQL e cosa succede in While / End While.

    
posta Kayot 22.01.2016 - 00:39
fonte

0 risposte

Leggi altre domande sui tag