Я пытаюсь создать форму входа на моем веб-сайте ASP.NET. В настоящее время есть некоторые проблемы. Я пытаюсь включить такие функции, что вошедший в систему пользователь имеет представление, чтобы просмотреть только его профиль. Код на странице входа в систему заключается в следующем:.Неверная попытка прочитать, когда нет данных в dr
business.clsprofiles obj = new business.clsprofiles();
Int32 a = obj.logincheck(TextBox3.Text, TextBox4.Text);
if (a == -1)
{
Label1.Text = "Username/Password incorrect";
}
else
{
Session["cod"]= a;
Response.Redirect("profile.aspx");
}
После входа в систему, пользователь перемещается на страницу, где человек может просмотреть его профиль Зайдя сеанса получения значения правильно вошедшего в лицо из страницу входа и успешно передать ее на следующую страницу. Но здесь, на этой странице профиля возникает ошибка, и я думаю, что проблема где-то в grid_bind()
ниже методе
public void grid_bind()
{
business.clsprofiles obj = new business.clsprofiles();
List<business.clsprofilesprp> objprp = new List<business.clsprofilesprp>();
Int32 z = Convert.ToInt32(Session["cod"]);
objprp = obj.fnd_profiles(z); //This line of code is passing an integer as required but does not get the desired result from the database
GridView1.DataSource = objprp;
GridView1.DataBind();
}
Как ошибка бизнеса-логике говорит, «недействительная попытка чтения при отсутствии данных присутствуют в др»
public List<clsprofilesprp> fnd_profiles(Int32 id)
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
SqlCommand cmd = new SqlCommand("fndpro", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@id", SqlDbType.Int).Value = id;
SqlDataReader dr = cmd.ExecuteReader();
List<clsprofilesprp> obj = new List<clsprofilesprp>();
while(dr.HasRows)
{
clsprofilesprp k = new clsprofilesprp();
k.id = Convert.ToInt32(dr[0]);//Something wrong here?
k.name = dr[1].ToString();
k.password = dr[2].ToString();
k.description = dr[3].ToString();
k.created = Convert.ToDateTime(dr[4]);
k.modified = Convert.ToDateTime(dr[5]);
obj.Add(k);
}
dr.Close();
cmd.Dispose();
con.Close();
return obj;
}lesprp k = new clsprofilesprp();
k.id = Convert.ToInt32(dr[0]);//Something wrong here?
k.name = dr[1].ToString();
k.password = dr[2].ToString();
k.description = dr[3].ToString();
k.created = Convert.ToDateTime(dr[4]);
k.modified = Convert.ToDateTime(dr[5]);
obj.Add(k);
}
dr.Close();
cmd.Dispose();
con.Close();
return obj;
возможно дубликат [Invalid попытке чтения при отсутствии данных присутствует] (http://stackoverflow.com/questions/1147615/invalid-attempt-to-read-when-no-data-is-present) –