verwendetes Datenbanksystem: SQL
Hallo Leute,
Ich bin gerade dabei einige Sachen von VB.NET in C# zu übersetzen und bin auf eine kleine Schwierigkeit gestoßen.
Folgendes Stück Code liegt in vb vor:
Using con As DbConnection = New SqlConnection()
\*snip*
Dim sql As String = "Select * From Test_User Where user_Test = '" & myName & "'"
Dim daUser As New SqlDataAdapter(sql, con)
\*snap*
Wenn ich dies nun versuche in C# zu übersetzten:
using (DbConnection con = new SqlConnection())
{
*snip*
string sql = "Select * From Test_User Where user_Test = '" + Name + "'";
SqlDataAdapter daUser = new SqlDataAdapter(sql, con);
*snap*
}
Meine vb Kenntinsse sind nicht wirklich weitgehend. Es reicht für einfache Befehle
Bekomme ich bei dem SqlDataAdapter folgenden Fehler:> Fehlermeldung:
2-Argument: Kann nicht von "System.Data.Common.DbConnection" in "System.Data.SqlClient.SqlConnection" konvertiert werden.
Ich frage mich, warum dies in VB funktioniert aber nicht in C# und was die Alternative dazu wäre.
Kann mir hier jemand helfen?
Hallo Gnozo,
in C# wird nicht automatisch konvertiert, du musst das angeben (casten) :
SqlDataAdapter daUser = new SqlDataAdapter(sql, con as SqlConnection);
Oder schreibe gleich :
using (SqlConnection con = new SqlConnection())
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
Und da Du direkt in den nächsten Fehler läufst: [Artikelserie] SQL: Parameter von Befehlen
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Und hier die verschiedenen Möglichkeiten zu casten...
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
Hallo. Les den Artikel und schau Dein Query an.
Hab's nich umsonst verlinkt...
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Du hast jetzt vielleicht keinen funktionalen Fehler drin, aber bei einigen Werten wirst du feststellen, das du auf deine Weise in Probleme läufst.
Schau einfach mal in den Artikel rein. - Da sind die gängigsten Stolpersteine beschrieben. - Du solltest auf jeden Fall immer mit Parametern arbeiten.
Wissen ist nicht alles. Man muss es auch anwenden können.
PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |