If you have a lot of commands in the same scope, you could have names like personCommand or productCommand. From the MSDN General Naming Conventions you could:
DO choose easily readable identifier names. For example, a property
named HorizontalAlignment is more English-readable than
AlignmentHorizontal.
DO favor readability over brevity. The property
name CanScrollHorizontally is better than ScrollableX (an obscure
reference to the X-axis).
DO NOT use underscores, hyphens, or any
other nonalphanumeric characters. X DO NOT use Hungarian notation.
AVOID using identifiers that conflict with keywords of widely used
programming languages.
See more about C# Coding Conventions. In other cases, I prefer using just command to Keep It Simple, because the scope will tell me.
Another good tip, when you work with types which implements the IDisposable interface like SqlCommand, SqlConnection, you can use the using() { } structure to dispose the object after this scope. For sample:
public IEnumerable<Person> GetPersons()
{
var result = new List<Person>();
using (var connection = new SqlConnection("connection string"))
{
// I know it is a person command, because it is in a method for it.
// Keep it simple!
using (var command = new SqlCommand("select id, name from persons", connection))
{
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
result.Add(new Person() {
Id = (int) reader["id"];
Name = reader["name"] as string;
});
}
} // reader is disposed here
} // command is disposed here
} // connection is disposed here
return result;
}
There is much more about coding convention. See the links at references.
SqlCommand cmd, assign its properties and execute it. Then re-assign everything using that samecmdobject as needed for other DB-related tasks. Alternatively, as Mayank said you could just make a generic method that takes a procedure name, a collection of parameters and loop over those.