Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Wert aus Dataset in Variable speichern


Guts2 - Di 26.08.08 14:27
Titel: Wert aus Dataset in Variable speichern
verwendetes Datenbanksystem: Access

Hallo Leute, sorry das ich euch hier nerven muß, aber leider hat dich Suchfunktion bei meiner Frage nix gebracht :(
Also ich hab eine Access Datenbank und habe mir in mein C# Programm über eine gespeicherte Procedure zu einem Benutzernamen das Benutzerpassword geben lassen und hab es nun in einem DataSet drin. Jetzt will ich das Password in eine Variable speichern, damit ich es mit der Eingabe des Benutzers vergleichen kann. Aber ich bekomme es nicht hin.

Alle Lösungen die ich gefunden habe laufen über eine DataTabelle, aber meine Versuche die Daten vom DataSet zu einer DataTabelle zu bekommen sind schief gelaufen.

Wie kann ich jetzt auf meine einziges zurückgeliefertes Password zugreifen?

Gruß Guts2


Kha - Di 26.08.08 14:41

:welcome:

Für einen einzelnen Wert brauchst du kein DataSet. Erstelle stattdessen ein OleDbCommand und benutze ExecuteScalar.

PS: Ich hoffe mal, in der DB sind nur die Hashes der PWs drin ;) .


Guts2 - Di 26.08.08 15:04

Danke für den Tip, aber wie wende ich den an? Mein Code sa so aus:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
            OleDbCommand cmd = new OleDbCommand("[PWAusgabe]", conn);
            cmd.CommandType = CommandType.StoredProcedure;

            OleDbParameter Benutz1 = new OleDbParameter("@Benutzername", OleDbType.Char);
            Benutz1.Direction = ParameterDirection.Input;
            Benutz1.Value = Benutzer;
            cmd.Parameters.Add(Benutz1);

            OleDbDataAdapter da = new OleDbDataAdapter(cmd);
            DataSet ds = new DataSet();
            try
            {
                conn.Open();
                da.Fill(ds, "PWUebergabe");
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }


Wie müsstes das dann nach dem Tip aussehen?

Moderiert von user profile iconKha: C#-Tags hinzugefügt


Guts2 - Di 26.08.08 15:44

Hab das Problem jetzt gelöst. Danke nochmal für den Tip


lothi - Di 26.08.08 15:45

Hallo

Ich glaube Kah meint das so:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
OleDbCommand cmd = new OleDbCommand("[PWAusgabe]", conn); 
cmd.CommandType = CommandType.StoredProcedure; 

OleDbParameter Benutz1 = new OleDbParameter("@Benutzername", OleDbType.Char); 
Benutz1.Direction = ParameterDirection.Input; 
Benutz1.Value = Benutzer; 
cmd.Parameters.Add(Benutz1); 
string benutzer = myCommand.ExecuteScalar();


Zum andern Problem. Um an deine Daten zu kommen musst du über DataTable gehen. Das DataSet enhält eine oder mehrer Tabellen DataTable.


C#-Quelltext
1:
2:
3:
4:
foreach(DataTables tbl in ds.Tables)
{
    Console.WriteLine("Tabellenname: {0}", tbl.TableName);
}