System.IndexOutOfRangeException: Cannot find table 0
Dal code
public DataSet selectlogin(string u_name, string u_password, string u_email, string action)
{
SqlConnection con = new SqlConnection(h);
SqlCommand cmd = new SqlCommand("", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_login";
cmd.Parameters.AddWithValue("@name", u_name);
cmd.Parameters.AddWithValue("@email", u_email);
cmd.Parameters.AddWithValue("@password", u_password);
cmd.Parameters.AddWithValue("@action", action);
con.Open();
cmd.ExecuteNonQuery();
DataSet ds = new DataSet();
SqlDataAdapter ad = new SqlDataAdapter(cmd);
ad.Fill(ds);
return ds;
con.Close();
}
Bal-code
public DataSet selectlogin(string u_name, string u_password, string u_email, string action)
{
DataSet ds = new DataSet();
ds = obj.selectlogin(u_name, u_password, u_email, action);
return ds;
}
CS-code
protected void Btn_log(object sender, EventArgs e)
{
DataSet ds = new DataSet();
ds = obj.selectlogin("", TextBox1.Text, TextBox2.Text,"login");
if (ds.Tables[0].Rows.Count > 0)
{
Response.Redirect("dashboard.aspx");
}
}
Gespeicherte Prozedur
if(@action='login')
select * from login where u_email=@email and u_pass=@password
- Möchten Sie vielleicht, um mehr Text zu deinem Problem.
- Hmm.. schönen code! Ist es ein problem mit dem code? Oder ist es nur um uns zu zeigen, Ihren code?
- Sieht aus wie Sie nicht über eine Tabelle 0, vielleicht sollte man hinzufügen? Was erwarten Sie von der Veröffentlichung dieser code hier?
- Was passiert, wenn es keinen user mit der email-Adresse und Passwort zur Verfügung gestellt? Keine Tabellen zurückgegeben, die innerhalb des dataset, so dass Sie nicht verwenden können, eine Tabelle, einen index von null, weil es keinen gibt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten die Fehler hier:
Prüfen Sie zunächst, ob die Tabelle mit dem index 0 existiert, dann versuchen, auf die Eigenschaften...
Helfen sollte. Oder zumindest werde es Ihnen sagen, dass das zurückgegebene dataset leer ist (keine Tabellen drin).
Versuchen, diese
Oder versuchen es( verwenden != operator anstelle von > Betreiber)
CS-code