C# 在ASP.NET中使用两个SQLDataReader

C# 在ASP.NET中使用两个SQLDataReader,c#,asp.net,.net,database,C#,Asp.net,.net,Database,我有以下代码用于处理两个表中的数据,但我似乎无法让两个SQLDataReader来处理它。你知道如何改变它使它工作吗 //SqlConnection cn = valid SQL Server 2008 connection using (SqlCommand cmd = new SqlCommand("SELECT * FROM table1", cn)) { using (SqlDataReader rdr = cmd.ExecuteReader()) {

我有以下代码用于处理两个表中的数据,但我似乎无法让两个SQLDataReader来处理它。你知道如何改变它使它工作吗

//SqlConnection cn = valid SQL Server 2008 connection

using (SqlCommand cmd = new SqlCommand("SELECT * FROM table1", cn))
{
    using (SqlDataReader rdr = cmd.ExecuteReader())
    {
        while (rdr.Read())
        {
            int nVal1 = rdr.GetInt32(0);
            int nVal2 = rdr.GetInt32(1);
            //...
            int nValN = rdr.GetInt32(N);

            //Now I process the data read ...

            //After processing I need to use the results
            //to look up data from another table using 
            //this item's data

            using (SqlCommand cmd2 = new SqlCommand("SELECT * FROM table2 WHERE " + strSQLCondition, cn))
            {
                //But code below doesn't let me create another reader
                using (SqlDataReader rdr2 = cmd2.ExecuteReader())
                {
                    while (rdr2.Read())
                    {
                        //Process results
                    }
                }
            }

        }
    }
}

默认情况下,一个连接上只能使用一个活动数据集。你有几个选择。我想到的三个是

  • 在手之前查找数据并将其缓存
  • 为内部命令使用第二个连接对象
  • 使用火星-

  • 默认情况下,一个连接上只能使用一个活动数据集。你有几个选择。我想到的三个是

  • 在手之前查找数据并将其缓存
  • 为内部命令使用第二个连接对象
  • 使用火星-

  • 谢谢打开另一个连接会有所帮助。我不知道为什么我自己没有想到:)谢谢。打开另一个连接会有所帮助。我不知道为什么我自己没有想到:)