?
Solved

How to execute two queries simultaneously

Posted on 2010-08-25
6
Medium Priority
?
470 Views
Last Modified: 2012-05-10
Experts
please see the attached image and the error there.
Now please suggest me how to execute the two queries simultaneously.

Apart from my attempt in this if there is a better way to execute the same then please let me know .
Thanking you,
Anindya
private void display_companyName_atUpdateMode()
        {
            Int32 comID = 0;
            using (SqlConnection con = new SqlConnection(Connectionstring.Connection))
            {
                string query = "select CompanyID from Table_Interaction where InteractionID='" +Convert.ToInt32( InteractionID.ToString() )+ "' ";
                using (SqlCommand cmd = new SqlCommand(query, con))
                {
                    con.Open();
                    SqlDataReader reader = cmd.ExecuteReader();
                    if (!reader.HasRows) return;
                    while (reader.Read())
                    {
                        comID=Convert.ToInt32(string.Format("{0}",reader[0]));
                        string query2 = "select CompanyName from Table_Client where CompanyID=@param";
                        SqlCommand cmd2 = new SqlCommand(query2, con);
                        cmd2.Parameters.AddWithValue("@param", comID);
                        SqlDataReader reader1 = cmd2.ExecuteReader();
                        if (!reader1.HasRows) return;
                        while (reader.Read())
                        {
                            comboBox_client.Text = string.Format("{0}", reader1[0]);
                        }


                    }
                }
            }
                 
        }

Open in new window

error.JPG
error.JPG
0
Comment
Question by:ANINDYA
6 Comments
 
LVL 3

Expert Comment

by:celdridgeMadman
ID: 33528577
I think you'll find you can only execute 1 select command at a time per connection object. Fire up another connection and use that for your second query.
0
 
LVL 16

Accepted Solution

by:
Vikram Singh Saini earned 1000 total points
ID: 33528617
0
 

Author Comment

by:ANINDYA
ID: 33528619
Expert celdridgeMadman
is it the only method used by all the developers or there is any other better way is there .
I am asking as I am fresher so I would like to know what is the best way to do that.
Thanking you
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
LVL 3

Assisted Solution

by:celdridgeMadman
celdridgeMadman earned 1000 total points
ID: 33528663
Certainly not the "Best" way. It's a bit wasteful to use 2 connections when they're not needed. The "multiple active result set" (see vs00saini's links above)  seems ideal for this situation, but without knowing what version of ADO.NET you're using I can't say if they will work.

Another alternative is to copy the data locally into an array of some sort and loop through that, keeping in mind to only have 1 connection/command going at once.
0
 

Author Closing Comment

by:ANINDYA
ID: 33529136
Experts thanks for finding time and answering.
Anindya Chatterjee
Bangalore
India
0
 
LVL 5

Expert Comment

by:Akin Delu
ID: 33529238
SqlDataReader will not let you use its connection with another SqlDataReader while its still open, why not try using a DataTable for the first query then loop through the rows of the DataTable obj then execute your second query.

This is a sample code
===================
string connstr = ConfigurationManager.ConnectionStrings["dbconn"].ConnectionString;
SqlConnection c = new SqlConnection(connstr);
c.Open();
SqlDataAdapter adapter1 = new SqlDataAdapter("select * from table1", c);
DataTable dt1 = new DataTable();
adapter1.Fill(dt1);
foreach (DataRow dr in dt1.Rows)
{
           int id = int.Parse(dr["acc_class_fk"].ToString());
           SqlDataAdapter adapter2 = new SqlDataAdapter("select * from table2 where id = "+id+"", c);
           DataTable dt2 = new DataTable();
           adapter2.Fill(dt2);
}
c.Close();

note dbconn is a connectionstring entry in the webconfig
0

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

An alternative to the "For XML" way of pivoting and concatenating result sets into strings, and an easy introduction to "common table expressions" (CTEs). Being someone who is always looking for alternatives to "work your data", I came across this …
High user turnover can cause old/redundant user data to consume valuable space. UserResourceCleanup was developed to address this by automatically deleting user folders when the user account is deleted.
SQL Database Recovery Software repairs the MDF & NDF Files, corrupted due to hardware related issues or software related errors. Provides preview of recovered database objects and allows saving in either MSSQL, CSV, HTML or XLS format. Ensures recov…
Stellar Phoenix SQL Database Repair software easily fixes the suspect mode issue of SQL Server database. It is a simple process to bring the database from suspect mode to normal mode. Check out the video and fix the SQL database suspect mode problem.
Suggested Courses

588 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question