C#同时使用2个sqldatareader? [英] C# Using 2 sqldatareader at same time?

查看:68
本文介绍了C#同时使用2个sqldatareader?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,有没有办法同时使用两个sqldatareader?

Hello is there a way to use two sqldatareader at same time ?

我正在编写程序

我因为同时使用2个阅读器而出现错误

and i got error because i use 2 readers at same

代码示例

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,必须先关闭.

There is already an open DataReader associated with this Command which must be closed first.

推荐答案

该错误消息具有误导性.您必须在连接字符串中设置 MultipleActiveResultSets = True ,才能使用两个不同的读取器发送两个单独的命令.

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.

这篇关于C#同时使用2个sqldatareader?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆