c# - Error when I use SqlDataReader in an another SqlDataReader -


i error

there open datareader associated command must closed first.

when use sqldatareader in sqldatareader. don't know made mistake , how can solved? error appears when second datareader (dr2) executed.

{     cmd = new sqlcommand("select agent,comm,primm comm a_id = '" + textbox1.text + "' , date >= @date1 , date <= @date2 ", agr);      cmd.parameters.addwithvalue("@date1", datetimepicker1.value);     cmd.parameters.addwithvalue("@date2", datetimepicker2.value);     dr = cmd.executereader();      while (dr.read())     {               aid = dr[0].tostring().trim();         comm = double.parse(dr[1].tostring());         busi = double.parse(dr[2].tostring());          cmd2 = new sqlcommand("select s_id,lvl agnt a_id = @a_id", agr);         cmd2.parameters.addwithvalue("@a_id", aid);          // on line executed message          // there open datareader associated          // command must closed first.         dr2 = cmd2.executereader();                   if(dr2.read())         {             abc = dr2[0].tostring();         }                           dr2.close();     }      dr.close();     cmd.parameters.clear(); } 

when open datareader, connection used exclusively datareader , cannot used execute other commands (sqlcommand.executenonquery, sqldataadapter etc..).
see remarks section on msdn reference on sqldatareader.
need add multipleactiveresultsets=true connection string overcome limitation

this article on msdn explain details of problem

as unrelated note, please, avoid use string concatenation build command text. using parameters, why switch string concat 1 value?

cmd = new sqlcommand("select agent,comm,primm comm " +           "where a_id = @id , date >= @date1 , date <= @date2 ", agr);  cmd.parameters.addwithvalue("@id", textbox1.text); cmd.parameters.addwithvalue("@date1", datetimepicker1.value); cmd.parameters.addwithvalue("@date2", datetimepicker2.value); dr = cmd.executereader(); 

Comments

Popular posts from this blog

matlab - Deleting rows with specific rules -

php - MySQLi multi_query results for later use -