Oh ok.  I will make that change Vinay.  Thanks for your comments.
On Tue, Jan 5, 2010 at 12:34 PM, vinay kumar <[email protected]>wrote:

> add finally block and then close the reader
>
> On Mon, Jan 4, 2010 at 10:51 PM, Karthikeyan R <[email protected]>wrote:
>
>> Just fixed the problem by closing the reader in the aspx.cs page.
>>
>>   private void gethintno()
>>     {
>>         try
>>         {
>>             string squery = "select Hint_No from Tbl_Hintquestion where
>> Hint_Question = \'" + (Fixquotes(lblhintquestion.Text.Trim())) + "\'";
>>             IDataReader dr;
>>             dr = EQuery.ExecuteReader(squery);
>>             if (dr.Read() == true)
>>             {
>>                 ihintno = int.Parse(dr["Hint_No"].ToString());
>>             }
>>            * dr.Close();   *
>>          }
>>         catch (Exception EXE)
>>         {
>>             Alert.Show(EXE.Message);
>>         }
>>     }
>>
>>   On Mon, Jan 4, 2010 at 6:17 PM, Karthikeyan R <[email protected]>wrote:
>>
>>> Thanks for your replies.
>>>
>>> Sushma,
>>>
>>> As Benj suggested it produced "Unreachable code detected." since return
>>> should be last statement in a method (as per my understanding).
>>>
>>> I have changed the logic and used a datatable to fill the dropdownlist as
>>> I found that would be an efficient way rather than using datareader.
>>>
>>> I have changed the code in the Execute reader method like this,
>>>
>>> public OleDbDataReader ExecuteReader1(string ReaderQuery)
>>>
>>> {
>>>
>>> OleDbDataReader reader = null;
>>>
>>> try
>>>
>>> {
>>>
>>> conn =
>>> new OleDbConnection();
>>>
>>> conn.ConnectionString =
>>> DBConnection
>>> .GetConnectionString();
>>>
>>> cmd =
>>> new OleDbCommand(ReaderQuery, conn);
>>>
>>> this.conn.Open();
>>>
>>> reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
>>>
>>> }
>>>
>>> catch (Exception ex)
>>>
>>> {
>>>
>>> if (handleErrors)
>>>
>>> strLastError = ex.Message;
>>>
>>> else
>>>
>>> throw;
>>>
>>> }
>>>
>>> return reader;
>>>
>>> }
>>> It works good in few scenarios, whereas if I call a method to
>>> EXECUTESCALAR after the EXECUTEREADER method it gives the folllowing error,
>>> "The connection was not closed. The connection's current state is open."
>>>   On Mon, Jan 4, 2010 at 6:29 AM, Benj Nunez <[email protected]>wrote:
>>>
>>>> "*// Try this one Karthik*
>>>> *
>>>> *
>>>> *return dr;*
>>>> *then close connection;
>>>> *
>>>> ** "
>>>>
>>>>
>>>> Hi.
>>>>
>>>> I think if you do this, you'll get a compiler error/
>>>> warning:"Unreachable code detected.".
>>>> As far as I can tell, any statement below the return statement
>>>> produces this
>>>> error/warning except when you program in Borland Delphi. ;)
>>>>
>>>>
>>>>
>>>> Cheers!
>>>>
>>>>
>>>>
>>>> Benj
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Jan 4, 8:45 am, sushma sushma <[email protected]> wrote:
>>>> > *
>>>> > Check the red marked code karthikeya.
>>>> >
>>>> > OleDbDataReader ExecuteReader(string** ReaderQuery)*
>>>> >
>>>> > *{*
>>>> >
>>>> > *cmd =*
>>>> > *new OleDbCommand**(ReaderQuery, conn);*
>>>> >
>>>> > *conn.Open();*
>>>> >
>>>> > *dr = cmd.ExecuteReader(*
>>>> > *CommandBehavior**.CloseConnection);*
>>>> > *
>>>> > *
>>>> > *// Try this one Karthik*
>>>> > *
>>>> > *
>>>> > *return dr;*
>>>> > *then close connection;
>>>> > *
>>>> > **
>>>> >
>>>> > *conn.Close();*
>>>> >
>>>> > *return** dr;*
>>>> >
>>>> >
>>>> >
>>>>  > On Sat, Jan 2, 2010 at 7:31 AM, Karthikeyan R <[email protected]>
>>>> wrote:
>>>> > > Hi,
>>>> >
>>>> > > I am getting *"Invalid attempt to Read when reader is closed"* error
>>>> in
>>>> > > one of my pages.I have used the following method in my class file,
>>>> >
>>>> > > public
>>>> > > class ExecuteQuery
>>>> >
>>>> > > {
>>>> >
>>>> > > OleDbConnection conn;
>>>> >
>>>> > > OleDbCommand cmd;
>>>> >
>>>> > > DataTable dt;
>>>> >
>>>> > > OleDbDataAdapter da;
>>>> >
>>>> > > OleDbDataReader dr;
>>>> >
>>>> > > public ExecuteQuery()
>>>> >
>>>> > > {
>>>> >
>>>> > > conn =
>>>> > > new OleDbConnection();
>>>> >
>>>> > > conn.ConnectionString =
>>>> > > DBConnection.GetConnectionString();
>>>> >
>>>> > > }
>>>> >
>>>> > > *public*
>>>> > > * OleDbDataReader ExecuteReader(string** ReaderQuery)*
>>>> >
>>>> > > *{ *
>>>> >
>>>> > > *cmd = *
>>>> > > *new OleDbCommand**(ReaderQuery, conn); *
>>>> >
>>>> > > *conn.Open();*
>>>> >
>>>> > > *dr = cmd.ExecuteReader(*
>>>> > > *CommandBehavior**.CloseConnection); *
>>>> >
>>>> > > *conn.Close();*
>>>> >
>>>> > > *return** dr;*
>>>> >
>>>> > > *}*
>>>> > > }
>>>> >
>>>> > > In the aspx.cs file I have used the following code,
>>>> >
>>>> > > private void ddlfill()
>>>> >
>>>> > > {
>>>> >
>>>> > > try
>>>> >
>>>> > > {
>>>> >
>>>> > > ddlquestion.Items.Add(
>>>> > > "");
>>>> >
>>>> > > ddlquestion.SelectedIndex = 0;
>>>> >
>>>> > > string query = "select Hint_Question from Tbl_Hintquestion order by
>>>> > > Hint_No ASC";
>>>> >
>>>> > > bool abc = EQuery.ExecuteReader(query).Read();
>>>> >
>>>> > > while (abc == true)
>>>> >
>>>> > > {
>>>> >
>>>> > > ddlquestion.Items.Add(dr[
>>>> > > "Hint_Question"].ToString());
>>>> >
>>>> > > abc = EQuery.ExecuteReader(query).Read();
>>>> >
>>>> > > }
>>>> >
>>>> > > }
>>>> >
>>>> > > catch (Exception EXE)
>>>> >
>>>> > > {
>>>> >
>>>> > > Alert.Show(EXE.Message);
>>>> >
>>>> > > }
>>>> >
>>>> > > }
>>>> > > Can some one help me out to solve this problem?
>>>> > > --
>>>> > > Thanks & Regards,
>>>> > > Karthikeyan
>>>> >
>>>> > --
>>>> > Thanks,
>>>> >
>>>> > Sushma
>>>> >
>>>> > Email: [email protected]
>>>>
>>>
>>>
>>>
>>> --
>>> Thanks & Regards,
>>> Karthikeyan
>>>
>>
>>
>>
>> --
>> Thanks & Regards,
>> Karthikeyan
>>
>
>


-- 
Thanks & Regards,
Karthikeyan

Reply via email to