new problem out there. While reading data from database and when it runs out of records, it simply says "Invalid attempt to read when no data is present", so the question is how to prevent that?
Here's my code:
{
Label3.Text = Request.QueryString["Username"];
}
SqlConnection con = new SqlConnection("Data Source=JEVGENIJ-PC;Initial Catalog=ViaFitness;Integrated Security=True");
static SqlDataReader dr;
SqlCommand cmd;
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from Summary where UserName='"+Label3.Text+ "'", con);
dr = cmd.ExecuteReader();
dr.Read();
Label3.Text = dr[2].ToString();
Label1.Text = dr[1].ToString();
Label2.Text = dr[0].ToString();
}
protected void Button2_Click(object sender, EventArgs e)
{
dr.Read();
Label3.Text = dr[2].ToString();
Label1.Text = dr[1].ToString();
Label2.Text = dr[0].ToString();
con.Close();
}
}
You should make sure you have data in your reader:
protected void Button1_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = new SqlCommand("select * from Summary where UserName='"+Label3.Text+ "'", con);
dr = cmd.ExecuteReader();
if (dr.Read())
{
Label3.Text = dr[2].ToString();
Label1.Text = dr[1].ToString();
Label2.Text = dr[0].ToString();
}
}
protected void Button2_Click(object sender, EventArgs e)
{
if (dr.Read())
{
Label3.Text = dr[2].ToString();
Label1.Text = dr[1].ToString();
Label2.Text = dr[0].ToString();
}
con.Close();
}
Check out the MSDN-page for more info: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.read.aspx
call dr.read before every fetch. check if it is true , which means data is present
MSDN SqlDataReader.Read Method - Advances the SqlDataReader to the next record.
SqlDataReader reader = command.ExecuteReader();
// Call Read before accessing data.
while (reader.Read())
{
ReadSingleRow((IDataRecord)reader);
}
// Call Close when done reading.
reader.Close();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With