As far as I know no, there is no way to change this default. The constructor code for a SqlCommand is this:
public SqlCommand()
{
this.ObjectID = Interlocked.Increment(ref _objectTypeCount);
this._commandTimeout = 30;
this._updatedRowSource = UpdateRowSource.Both;
this._prepareHandle = -1;
this._rowsAffected = -1;
this._notificationAutoEnlist = true;
GC.SuppressFinalize(this);
}
A possible workaround is to use a predefined SqlCommand passed as argument to the constructor that takes a SqlCommand as argument.
So you could create a global SqlCommand (a template)
Dim commandTemplate60 = new SqlCommand()
commandTemplate60.Timeout = 60
and then when you need a command with a timeout of 60 seconds
Dim cmd As New System.Data.SqlClient.SqlCommand(commandTemplate60)
However, setting directly the Timeout, doesn't seems to be a lot of work