LösungMit dem Command-Objekt von ADO.NET Zunächst müssen Sie eine Entwicklungsumgebung für .NET besitzen und installieren. Besonders einfach kann dies mit den Express Versionen des Visual Studios, die kostenlos verfügbar sind, realisiert werden. Sie können diese Express Versionen unter http://www.microsoft.com/germany/msdn/vstudio/products/express/default.mspx herunterladen. Die Beispiele benutzen VB.NET.
Dim con As SqlConnection = GetConnection()
Dim sql As String
sql = "SELECT AnredeID, Anrede FROM dbo.Anreden"
Dim cdo As New SqlCommand(sql, con)
Dim sdr As SqlDataReader = cdo.ExecuteReader()
Do While sdr.Read
txtResult.Text = txtResult.Text & sdr.GetInt32(0).ToString & " " & sdr.GetString(1) & vbNewLine
Loop
sdr.Close()
Private Function GetConnection() As SqlConnection
Dim conString As String
conString = "Server=BEVPC\SQLExpress;database=MSDNSolve;Integrated Security=true"
Dim con As SqlConnection = Nothing
Try
con = New SqlConnection(conString)
con.Open()
Catch ex As Exception
Throw (ex)
End Try
Return con
End Function
Sie müssen beachten, dass die Connection (die Verbindung) über eine Funktion bereitgestellt wird. GetConnection() sorgt dafür, dass ich immer eine geöffnete Verbindung (wenn ohne Fehler möglich) bekomme. Die schnellste Möglichkeit, Daten aus dem SQL Server zu beziehen ist es, eine Data Reader zu öffnen (ExecuteReader()). Nach dem Öffnen steht der Reader VOR dem ersten Datensatz. Die Methode Read (sdr.Read) gibt einen boolschen Wert zurück: True, wenn der Reader auf den nächsten Datensatz gehen konnte, false wenn nicht. Do While sdr.Read… Loop geht also durch alle Datensätze bis der Reader nicht mehr zur nächsten Zeile gehen kann (weil es keine mehr gibt). Daher wird auch eine Kopf-gesteuerte Schleife benutzt. Sollte die Abfrage gar keine Zeilen liefern. Schlägt schon das erste Read fehl. Die Funktionen GetX(OridnalzahlderSpalte) gibt also den Datentyp X mit den Werten aus der geforderten Spalte zurück. GetInt32(2) würde also einen Int32 aus Spalte 3 zurückgeben.
Verbinden und Abrufen von Daten mit ADO.NET
SqlCommand-Klasse Fragen? Im Blog: http://blogs.sqlserverfaq.de oder an droege@beconstructed.de |