C# Using 2 sqldatareader at same time?
Solution 1
The error message is misleading. You must have MultipleActiveResultSets=True
set in your connection string to be able to send two seperate commands with two different readers.
Solution 2
It is possible when you use something called Multiple Active Result Sets, or MARS. Check out this helpful article that details all possible pitfalls.
Solution 3
You'll have to enable Multiple Active Recordsets (MARS) on your connection.
http://msdn.microsoft.com/en-us/library/h32h3abf%28v=vs.80%29.aspx
Solution 4
1.Just add MultipleActiveResultSets=True into your connection string:
private string _ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=yourdbpath\Database.mdf;Integrated Security=True;MultipleActiveResultSets=True;Connect Timeout=30";
ThElitEyeS
Updated on July 29, 2022Comments
-
ThElitEyeS over 1 year
Hello is there a way to use two sqldatareader at same time ?
i was coding a program
and i got error because i use 2 readers at same
Sample of code
SqlCommand LoadSilk = new SqlCommand("SELECT silk_own FROM SK_Silk WHERE JID = (SELECT JID FROM TB_User WHERE StrUserID = '"+ comboBox1.Text +"')", Connection); SqlDataReader SilkReader = LoadSilk.ExecuteReader(); SqlCommand LoadCharacter = new SqlCommand("SELECT * FROM SRO_VT_SHARD.DBO._Char WHERE CharID IN (SELECT CharID FROM SRO_VT_SHARD.DBO._User WHERE UserJID = "+ JID +")", Connection); SqlDataReader CharacterReader = LoadCharacter.ExecuteReader(); try { SilkReader.Read(); textBox5.Text = SilkReader[0].ToString(); Silk = SilkReader[0].ToString(); dataGridView1.Enabled = true; button2.Enabled = true; while (CharacterReader.Read()) { dataGridView1.Rows.Add(CharacterReader["CharID"].ToString(), CharacterReader["CharName16"].ToString(), CharacterReader["CurLevel"].ToString()); } log(comboBox1.Text + " account data loaded"); } catch (Exception ex) { log(ex.Message); MessageBox.Show("Error"); } finally { SilkReader.Close(); CharacterReader.Close(); }
and its gave me that error
There is already an open DataReader associated with this Command which must be closed first.