Я предполагаю, что под "_SqlConnection.State == ConnectionState.Closed" вы имели в виду! =.
Это, безусловно, будет работать. Я думаю, что более привычно содержать сам объект соединения внутри оператора using, но то, что у вас есть, хорошо, если вы по какой-то причине хотите повторно использовать тот же объект соединения.
Одна вещь, которую вы обязательно должны изменить, это метод Dispose (). Вы не должны ссылаться на объект подключения в dispose, потому что он, возможно, уже был завершен в тот момент. Вместо этого вы должны следовать рекомендуемому шаблону Dispose.