Sql server 2008 返回多个sql查询结果-C#

Sql server 2008 返回多个sql查询结果-C#,sql-server-2008,c#-3.0,Sql Server 2008,C# 3.0,我有以下方法,它运行大约20个sql查询。将结果返回给客户的最佳方式是什么 public int Results() { using (var conn = GetConnection()) using (var cmd = new SqlCommand()) { cmd.Connection = conn; cmd.CommandType = CommandType.Text

我有以下方法,它运行大约20个sql查询。将结果返回给客户的最佳方式是什么

public int Results()
{
    using (var conn = GetConnection())
            using (var cmd = new SqlCommand())
            {
                cmd.Connection = conn;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = @"SELECT TOP 1 stdent_number from Students";

                conn.Open();
                var result = (int)cmd.ExecuteScalar();

                cmd.CommandText = @"SELECT TOP 1 class_number from Classes";
        var number = (int)cmd.ExecuteScalar();

                cmd.CommandText = @"SELECT TOP 1 table from Tables";
        var table = (int)cmd.ExecuteScalar();

                cmd.CommandText = @"SELECT TOP 1 suite from Suites";
        var suite = (int)cmd.ExecuteScalar();

                 .....
                //I want to return result, number, table and suite so they can be populated on client
        //What is the best way to return? Should I create IEnumerable and add values to it and return
        //as IEnumerable or should these be returned all separately or as a dictionary?
        //Also this is just an example in real time I have at least 15 values from sql queries that I       //want to return

            }
}

如果我正确理解了您的问题,您需要如何通过此函数将所有成功的查询数据传递回您的客户机。
我建议您创建自己的类(DTO的[Data Transfer Objects]),将多个信息从您的函数传递给客户端。如果您不想创建过程,请尝试下面的方法,而不是使用Int函数的返回类型。

将所有查询传递到字符串变量,如下所示

string sql = "SELECT TOP 1 stdent_number from Students; SELECT TOP 1 class_number from Classes; SELECT TOP 1 table from Tables; SELECT TOP 1 suite from Suites";
在那之后,试试下面的方法

using (SqlConnection conn = new SqlConnection(connection))
{
    var result,number,table;
    conn.Open();
            Cmd = new SqlCommand(sql, conn);
            SqlDataReader sqlReader = Cmd.ExecuteReader();
            while (sqlReader.Read())
            {
                result = dr[0].ToString();
            }

            sqlReader.NextResult();

            while (sqlReader.Read())
            {
                number = dr[0].ToString();
            }

            sqlReader.NextResult();

            while (sqlReader.Read())
            {
                table = dr[0].ToString();
            }

            sqlReader.Close();
            Cmd.Dispose();
            conn.Close();
}

还可以尝试以下链接:

Pandian-实际上,我们并不打算创建一个存储过程。还有其他更好的方法吗?