Это может не полностью ответить на ваш вопрос, но вы можете улучшить этот код несколькими способами.
Композиция против наследования
Во-первых, поймите и примените композицию к наследованию,Композиция - это отношение «имеет», тогда как наследование - это отношение «есть».
Например, если у класса Person есть свойство типа Phone, это его состав.
public class Person
{
public Phone Phone {get; set;}
}
Если класс Person происходит от класса Phone, это наследование.
public class Person : Phone
{
}
В вашем коде sqlFactory должен содержать sqlConn вместо того, чтобы наследовать от него.
Композиция дает большую гибкость, особенно потому, что C # не допускает множественное наследование.Подробнее читайте здесь: Предпочитаете ли вы композицию, а не наследование?
Внедрение SQL
Запрещается создавать операторы sql с использованием конкатенации строк, подобной этой.
"SELECT * FROM " + dbData[0]
Это создает потенциальную дыру в безопасности, которая допускает атаки SQL-инъекций.Вы должны всегда использовать параметризованные запросы, чтобы предотвратить это.
Чтение Совет / хитрость: защита от атак с использованием SQL-инъекций для понимания атак с использованием SQL-инъекций и способов их предотвращения.
Соглашение о кодировании
Практически общепринятым соглашением для именования классов среди разработчиков на C # является использование PascalCase, где первая буква каждого слова в имени класса пишется с заглавной буквы.Ваши классы будут SqlFactory, SqlConn и DbDefinition.
В этом руководстве приведены довольно часто используемые соглашения: Документ C # Стандарты кодирования