C#同时使用2个sqldatareader
本文关键字:2个 sqldatareader | 更新日期: 2024-09-22 12:39:05
你好,有办法同时使用两个sqldatareader吗?
我正在编写一个程序
我有错误,因为我在同一上使用了两个阅读器
代码示例
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();
}
它给了我错误
已经有一个打开的DataReader与此命令关联必须先关闭。
错误消息具有误导性。您必须在连接字符串中设置MultipleActiveResultSets=True
,才能使用两个不同的读卡器发送两个单独的命令。
当您使用称为多个活动结果集(MARS)的东西时,这是可能的。看看这篇有用的文章,它详细介绍了所有可能的陷阱。
您必须在连接上启用多个活动记录集(MARS)。
http://msdn.microsoft.com/en-us/library/h32h3abf%28v=vs.80%29.aspx
1.只需将MultipleActiveResultSets=True添加到连接字符串中即可:
private string _ConnectionString = @"Data Source=(LocalDB)'v11.0;AttachDbFilename=yourdbpath'Database.mdf;Integrated Security=True;MultipleActiveResultSets=True;Connect Timeout=30";
在块public partial class Form1 : Form
中声明那些DataReader示例:
namespace GoodFood_1_
{
public partial class Autentificare_client : Form
{
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)'v11.0;AttachDbFilename=C:'Users'edi_b'Documents'visual studio 2013'Projects'GoodFood(1)'GoodFood(1)'GOOD_FOOD.mdf;
Integrated Security=True;MultipleActiveResultSets=True");
SqlConnection con2 = new SqlConnection(@"Data Source=(LocalDB)'v11.0;AttachDbFilename=c:'users'edi_b'documents'visual studio 2013'Projects'GoodFood(1)'GoodFood(1)'GOOD_FOOD.mdf;
Integrated Security=True;MultipleActiveResultSets=True");
SqlDataReader dr;
SqlDataReader cc;
public Autentificare_client()
{
InitializeComponent();
}