首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多个SQL查询asp.net c#

多个SQL查询asp.net c#
EN

Stack Overflow用户
提问于 2011-05-04 09:41:58
回答 5查看 30.1K关注 0票数 9

我需要在一个函数中运行多个查询,是否必须为每个查询创建一个新的SqlConnection?或者只有一个连接,但不同的SqlCommands也可以吗?

谢谢,

编辑:这会起作用吗?

代码语言:javascript
运行
复制
       using (SqlConnection conn = new SqlConnection(connectionString))
      {
        conn.Open();

        using (SqlCommand cmd = new SqlCommand(query1, conn))
        {
            cmd.ExecuteNonQuery();
        }

        using (SqlCommand cmd = new SqlCommand(query2, conn))
        {
            cmd.ExecuteNonQuery();
        }

        using (SqlCommand cmd = new SqlCommand(query3, conn))
        {
            cmd.ExecuteNonQuery();
        }

    }
EN

Stack Overflow用户

发布于 2011-05-04 09:45:05

有一个SqlConnection和多个SqlCommands可以很好地工作,但是在尝试运行其他命令之前,您必须确保处理从前面的命令返回的任何SqlDataReaders

代码语言:javascript
运行
复制
using (SqlConnection conn = new SqlConnection())
{
    conn.Open()

    using (SqlCommand cmd = new SqlCommand("SELECT myrow FROM mytable", conn))
    {
        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            // Handle first resultset here
        }
    }

    using (SqlCommand cmd = new SqlCommand("SELECT otherrow FROM othertable", conn))
    {
        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            // Handle second resultset here
        }
    }
}

或者,您也可以将命令合并到一个批处理中,而不是处理多个结果集,如下所示:

代码语言:javascript
运行
复制
using (SqlConnection conn = new SqlConnection())
{
    conn.Open()
    using (SqlCommand cmd = new SqlCommand("SELECT myrow FROM mytable; SELECT otherrow FROM othertable", conn))
    {
        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            // Handle first resultset here, and then when done call
            if (reader.NextResult())
            {
                // Handle second resultset here
            }
        }
    }
}

当您处理许多结果集时,您会发现像这样将查询批处理在一起可以显著提高性能,但代价是增加了调用代码的复杂性。

票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5877584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档