Hallo Leute,
ich bin in C# ja immer noch Anfänger, arbeite aber gerade an einem ersten größeren Projekt. Mir ist da so eine fixe Idee gekommen, die mich nicht richtig loslässt. Ich möchte gerne eine einzige Klasse schreiben, mit der ich alle benötigten Datenbank abfragen abfrühstücken kann. Das klappt eigentlich auch ganz gut, aber wenn es darum geht Gespeicherte Prozeduren aufzurufen, hört es bei mir auf. Bishar habe ich das immer so gemacht:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
| public DataSet Login() {
SqlConnection conn = new SqlConnection(connstr); SqlCommand cmd = new SqlCommand("usp_login", conn); cmd.CommandType = CommandType.StoredProcedure;
SqlParameter paramBenutzerName = new SqlParameter("@benutzername", SqlDbType.VarChar); paramBenutzerName.Direction = ParameterDirection.Input; paramBenutzerName.Value = strBenutzername; cmd.Parameters.Add(paramBenutzerName);
SqlParameter paramPasswort = new SqlParameter("@passwort", SqlDbType.VarChar); paramPasswort.Direction = ParameterDirection.Input; paramPasswort.Value = strPasswort; cmd.Parameters.Add(paramPasswort);
SqlParameter paramAktiv = new SqlParameter("@aktiv", SqlDbType.Bit); paramAktiv.Direction = ParameterDirection.Input; paramAktiv.Value = bAktiv; cmd.Parameters.Add(paramAktiv);
SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet();
try {
conn.Open(); da.Fill(ds, "Login"); conn.Close();
} catch (Exception ex) { ds.Tables.Add("Login"); throw; }
return ds;
} |
Dies ist ein Beispiel für einen meiner Aufrufe für eine Gespeicherte Prozedur. Ist bestimmt immer noch nicht ganz elegant, aber es funktioniert. Jetzt möchte ich aber eine allgemeine Funktionen schreiben, der ich einfach nur den Namen der Prozedur mitgebe, die benötigten Parameter (ich dachte irgendwie an ein Array, das man dann durchläuft, um die benötigten Parameter zu übergeben) und die mir dann ein gefülltes DataSet zurückgibt. Leider bekomme ich das irgendwie nicht hin, weil ich nicht weiß, wie ich die Abfrageparameter an die Funktion übergeben könnte. Könnt Ihr mir an dieser Stelle weiterhelfen? Geht das überhaupt? Ich hoffe, Ihr habt verstanden, was ich meine... Tausend Dank im Voraus für Eure Hilfe!
Gruß
mjanz
Moderiert von
UGrohne: Code- durch C#-Tags ersetzt