C#:SQL-一次查询一次与在命令文本中多次查询相比?

时间:2018-07-19 23:45:19

标签: c# mysql sql .net

因此,我在应用程序中发现了很多东西。我通常需要运行多个查询,当我调用某些方法时一个接一个地运行。我很确定我知道答案,但是我不是100%地确定答案会有多大。

我有一个像这样的方法,它只是运行一个SQL查询,别无所求。

using (var dbConnection = DatabaseManager.GetConnection())
{
    dbConnection.ExecuteQuery("lets pretend I've written a query here...");
    dbConnection.ExecuteQuery("lets pretend I've written a query here...");
    dbConnection.ExecuteQuery("lets pretend I've written a query here...");
}

现在,3个查询都在不同的表上,因此无法将它们连接在一起。我真的需要调用此方法3次吗?还是用;分隔这些查询,然后将所有3个查询的命令文本都设置为_command.CommandText是有益的,还是最好一次只运行一个?

对于想知道的人,这是ExecuteQuery方法:

public void ExecuteQuery(string query)
{
    _command.CommandText = query;

    if (_parameters != null && _parameters.Count > 0)
    {
        _command.Parameters.AddRange(_parameters.ToArray());
    }

    try
    {
        _command.ExecuteNonQuery();
    }
    catch (MySqlException e)
    {
        Logger.Error(e, "Database error was logged.");
    }
    finally
    {
        _command.CommandText = string.Empty;
        _command.Parameters.Clear();

        if (_parameters != null && _parameters.Count > 0)
        {
            _parameters.Clear();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以同时运行3。如您所说,使用;设置这3个查询的CommandText。在每个结尾处。

如果没有数据返回,则没有其他工作,但是如果您需要从数据库中检索一些数据,则将需要使用ExecuteReader方法的方法NextResult

我希望它对您有用。有一个好的代码!