hi there, i have some code which cycles through my table in my DB and fills some textboxes. For some reason if there are 5 lines it will only get 4, yet strangly i used the code somewhere else for the same kind of thing and it reads all the lines, and anyone help?
int a = 0;int b = 0;
//This is the sql statement.
string sqlMultiL ="SELECT * FROM tbl_stock_part_multi_location WHERE stock_ID =" +Convert.ToInt32(Request.QueryString["qsStockID"]);// + ") AND EXISTS (SELECT * FROM tbl_stock_part_multi_location WHERE stock_ID =" + Convert.ToInt32(Request.QueryString["qsStockID"]) + ")";
//This creates a sql command which executes the sql statement.
SqlCommand sqlCmdMultiL =new SqlCommand(sqlMultiL, myConnMultiL);myConnMultiL.Open();
SqlDataReader drMultiL = sqlCmdMultiL.ExecuteReader();
//This reads the first result from the sqlReader
while (drMultiL.Read()){
try
{
((TextBox)Panel2.FindControl("txtDesc_L" + a.ToString())).Text =Convert.ToString(drMultiL["description"]);
for (b = 1; b <= 5; b++)
{
((TextBox)Panel2.FindControl("txtQty" + b.ToString() +"_L" + a.ToString())).Text =Convert.ToString(drMultiL["qty" + b.ToString()]);
}// end of for b loop
}
catch (Exception exMultiL){
lblError.Text = lblError +Convert.ToString(exMultiL);}
//increase the counter
a++;
// you can add a break if you only want 5 rows returned:
if (a >= 5)break;}
also i dont know if anyone could answer this is if the value in my DB is not = to one in the DDL how can i handle that so it dosnt throw an error and cause my code to stop?
Thanks in advance
Jez
Change to
for (b = 0; b <= 5; b++) //You need to start from the 0{
a++; //Here you missed
((TextBox)Panel2.FindControl("txtQty" + a.ToString() +"_L" + a.ToString())).Text =Convert.ToString(drMultiL["qty" + a.ToString()]); //Need to change to a too
}// end of for b loop
|||hi gave that a go and still no luck :( i have tried changing it to 0 before by my controls start from 1 etc. As for changing the controls all to a.ToString() i think thats wrong because it would just do txtQty1_L1, txtQty2_L2 etc instead of going from 1 - 5 and then to the next L