一旦调用execute就打开一个sql连接

时间:2013-12-23 09:36:17

标签: c# sql sql-server

考虑以下函数,该函数返回带有关闭连接的sql命令

public static SqlCommand CreateTableCommand(this IList<Columns> Columns,string connectionString=null)
{
   //.
   //.
   //.
   var command = new SqlCommand(query.ToString());
   command.Parameters.AddWithValue("@tablename",T.Name);
   command.Connection = new SqlConnection(connectionString??App.db.GetConnectionString());
   return command;
}

我将它用作以下

someObject.GetColumns().ToList().CreateTableCommand().ExecuteNonQuery();

有没有办法在调用ExecuteNonQuery()ExecuteScalar()之前稍微自动打开连接?我不想返回一个打开的连接,因为我可能不会立即调用执行

1 个答案:

答案 0 :(得分:2)

你可以写一个扩展名

    public static int MyExecuteNonQuery(this SqlCommand command)
    {
        command.Connection.Open();
        var buff = command.ExecuteNonQuery();
        command.Connection.Close();

        return buff;
    }