2

目标:使用 C# 和 SqlServer2005 使用多个选择语句填充结构

问题:目前我可以使用一个 select 语句填充一个结构,但是由于这个特定的 select 语句的性质,要生成正确的结果,需要分解查询,因此我必须使用多个 select 来填充一个结构。这是可能的还是我走错了路。下面是我正在使用的代码

public static bool GetColumns()
{
    String sql = "";

    try
    {
       conn.Open();

       sql = @"SELECT
                   database.dbo.table1.column1
               FROM
                   database.dbo.table1;

              SELECT
                   database.dbo.table2.column2
              FROM
                   database.dbo.table2;

              SELECT
                   database.dbo.table3.column3
              FROM    
                  database.dbo.table3 ;" ;

        SqlCommand cmd = new SqlCommand(sql, conn);

        SqlDataReader dr = cmd.ExecuteReader();

         MyStructure struct1 = new MyStructure();   

         while (dr.Read())
        {
           struct1.column1 = dr.GetValue(0);
           struct1.column2 = dr.GetValue(1);
           struct1.column3 = dr.GetValue(2);

          MyArrayList.Add(struct1);
        }

           dr.Close();

           conn.Close();

        return true;
 }

 catch (Exception ex)
 {
    if (conn.State == ConnectionState.Open)
        conn.Close();

    error.LogError(ex, "", "")
    return false
 }

上面的代码不起作用,因为我列出的值超出了每个单独的 select 语句的范围。正确的方法是什么?

4

1 回答 1

3

您的语句将返回多个结果集,如果您使用 DataReader,那么您将获得多个结果。使用DataReader.NextResult方法获取下一个结果集并相应地显示数据。

如果你不关心DataReader那么你可以在DataSet里面使用DataSet和使用aDataAdapater来填充多个结果。DataTables

于 2013-09-23T20:21:21.343 回答