Fehler bei der Datenbankabfrage (ASPX&ADO.NET)

Slater

Erfahrenes Mitglied
Hallo,
ich habe in einem Schulprojekt eine Datenbankabrage für ein Login geschrieben. Leider gibt es mir immer wieder eine Fehlermeldung aus (Keine Ahnung mehr wie sie heisst -> Schule)
Das Problem liegt bei der Zeile "int Anzahl = dt.Rows.Count;"! Weiss aber nicht weiter :(

Sieht jemand das Problem?

Slater

Code:
private void Button1_Click(object sender, System.EventArgs e)
{
	string Passwort = TextBox3.Text;
	string MD5Passwort = FormsAuthentication.HashPasswordForStoringInConfigFile(Passwort, "md5");
	OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Server.MapPath("Datenbank.mdb"));
	OleDbCommand cmd = new OleDbCommand();
	cmd.Connection = conn;
	cmd.CommandText = "SELECT * FROM Personen Where Name='textBox1.Text' AND Vorname='textBox2.Text' AND Passwort='MD5Passwort'";
	DataSet ds = new DataSet();
	cmd.Connection.Open();
	DataTable dt = ds.Tables["Userdaten"];
	int Anzahl = dt.Rows.Count;
	if (Anzahl > 0)
	{
		UserID = Convert.ToInt32(dt.Rows[0]["ID"]);
		Label1.Text = "";
		Session("Login") = true;
		Session("UserID") = UserID;			
		Response.Redirect("WebForm2.aspx");
	}
	else
	{
		Label1.Text = "Login ist fehlgeschlagen";
	}
}
 
Hallo Slater,

ich glaube, daß der "count"-Befehl mit 0 anfängt zu zählen.

D.h. befindet sich ein Datensatz in der Tabelle, hat deine Variable

Anzahl = dt.Rows.Count

den Wert 0.

Ist die Tabelle leer hat sie den Wert -1.

Lasse die folgende if-Abfrage mal auf (Anzahl >= 0) prüfen, dann sollte es funktionieren.
 

Neue Beiträge

Zurück