Autor Beitrag
Guts2
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 26.08.08 14:27 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 26.08.08 15:04 
Danke für den Tip, aber wie wende ich den an? Mein Code sa so aus:

ausblenden 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 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 26.08.08 15:44 
Hab das Problem jetzt gelöst. Danke nochmal für den Tip
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Di 26.08.08 15:45 
Hallo

Ich glaube Kah meint das so:

ausblenden 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.

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