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.