OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["floorball"].ConnectionString);
string sql = "SELECT pk_id FROM tbl_week WHERE pk_id="+txtDate.SelectedValue;
OleDbCommand cmd = new OleDbCommand(sql, con);
cmd.Connection.Open();
OleDbDataReader dr = cmd2.ExecuteReader(CommandBehavior.CloseConnection);
if(dr2.HasRows){
[b]Response.Write(dr2[0]);[/b]
}
Men jag får "System.InvalidOperationException: No data exists for the row/column." på den feta raden. Någon som har ett snabbt svar?
Jag har testat Sql:en och jag får ut data av den....
Om du använder dig av dr2.Read() så behöver du inte använda dig av HasRows eftersom Read returnerer true om det finns något att läsa, och false om inget finns.
if(dr2.Read()){
Response.Write(dr2[0]);
}
Sedan så är det väldigt ANTI-.NET att använda sig av Response.Write i ASP.NET, du skall istället ha en Label som du sätter värdet till.
Dessutom om du bara skall ha ut ett enda värde från databasen så är det lite overkill att använda ExecuteReader, så fall är det bättre med ExecuteScalare, som kommer att returnera ditt pk_id som ett object till dig.
OleDbConnection con = new OleDbConnection(ConfigurationManager.ConnectionStrings["floorball"].ConnectionString);
string sql = "SELECT pk_id FROM tbl_week WHERE pk_id="+txtDate.SelectedValue;
OleDbCommand cmd = new OleDbCommand(sql, con);
try{
cmd.Connection.Open();
object pkID = cmd2.ExecuteScalare();
lblMyPKID.Text = pkID.ToString();
}finally{
cmd.Connection.Close();
}
}