.net 如何从数据库中检索多个查询结果

.net 如何从数据库中检索多个查询结果,.net,database,asp.net-mvc-3,.net-4.0,ado.net,.net,Database,Asp.net Mvc 3,.net 4.0,Ado.net,我正在处理一个基于.net 4和MVC 3的项目,情况很好,只是我对代码改进和效率没有什么疑问,特别是在数据库连接方面,情况是: 我在模型类中有一个函数,它连接到数据库并从中检索信息,由于需求很少,函数必须返回的整体结果必须使用多个查询进行检索,为了实现这一点,我目前正在创建三个sql命令并运行它们,然后逐个填充数据集 但我有一种直觉,这可能不是最好的可用和有效的方式,而且这可能会耗费时间/资源,逐个运行多个查询到数据库,这可能是多余的 所以我想听听你们的专家意见,我做得对吗,还是有更好更快的方

我正在处理一个基于.net 4和MVC 3的项目,情况很好,只是我对代码改进和效率没有什么疑问,特别是在数据库连接方面,情况是:

我在模型类中有一个函数,它连接到数据库并从中检索信息,由于需求很少,函数必须返回的整体结果必须使用多个查询进行检索,为了实现这一点,我目前正在创建三个sql命令并运行它们,然后逐个填充数据集

但我有一种直觉,这可能不是最好的可用和有效的方式,而且这可能会耗费时间/资源,逐个运行多个查询到数据库,这可能是多余的

所以我想听听你们的专家意见,我做得对吗,还是有更好更快的方法来实现这一点

public string[] GetData()
    {
        …

        const string cmdString = "Select TOP 3 item.Id FROM design WHERE status=1 ORDER BY submittedOn Desc";
        const string cmdString2 = "Select TOP 6 item.Id FROM design WHERE status=1 ORDER BY orders desc;";
        const string cmdString3 = "SELECT TOP 9 item.Id FROM design WHERE status=1 ORDER BY NewID()";
        …

        var conn = new SqlConnection(conString.ConnectionString);
        var mySqlDataAdapter = new SqlDataAdapter();

        var myDataSet = new DataSet();
        int totalRows = 1;

        try
        {
            mySqlDataAdapter = new SqlDataAdapter(cmdString, conn);
            mySqlDataAdapter.Fill(myDataSet, "DataTble");

            mySqlDataAdapter = new SqlDataAdapter(cmdString2, conn);
            mySqlDataAdapter.Fill(myDataSet, "DataTble");

            mySqlDataAdapter = new SqlDataAdapter(cmdString3, conn);
            mySqlDataAdapter.Fill(myDataSet, "DataTble");

            totalRows = myDataSet.Tables["DataTble"].Rows.Count;

            status = true;
        }
        catch (Exception exp)
        {
            status = false;
            totalRows = 0;
        }

        var dataResults = new string[totalRows];

        if (status)
        {
            //putting the results into an Array() and returning that Array.
        }
        conn.Dispose();
        mySqlDataAdapter.Dispose();
        myDataSet.Dispose();
    return dataResults;
    }

查看ORM:实体框架或nHibernate。这将把您的表映射到您可以使用的对象,您不再需要编写SQL。它也更安全。为什么不在存储过程中使用union呢?