2015-07-10 4 views
0

Я использую Visual Studio 2013 и задаюсь вопросом, какая разница между использованием TableAdapter, чтобы делать и запускать запросы и используя MySqlCommand cmd = new MySqlCommand();. Неужели они оба одинаковы? Однако TableAdapter выглядит более безопасным, поскольку его можно использовать для остановки SQL-инъекции.Использование TableAdapters или программно для вставки?

Мне интересно, потому что с помощью TableAdapters вам просто нужно создать оператор SQL, а затем вызвать этот оператор, передавая все необходимые параметры. Выполняя все это программно, вам нужно создать экземпляр команды SQL, создать запрос, связать параметры, открыть соединение, выполнить запрос и закрыть соединение.

Так почему же многие люди, выполняющие SQL-запросы, программно, а не простой способ, такие как использование TableAdapter?

ответ

0

Практически столько же работы по настройке TableAdapter, сколько и для установки SqlCommand. Вы не описываете это полностью. TableAdapters обычно используются в сценариях привязки данных в пользовательских интерфейсах, так что любые ожидающие операции CRUD могут выполняться одним вызовом Update. Это, как правило, менее подходящий способ архивирования уровня доступа к данным. И ... SqlCommands абсолютно защищают от SQL Injection, предполагая, что вы действительно используете SqlParameters.

+0

Я согласен с тем, что, программируя выполнение запроса, он намного больше работает с использованием SqlCommand. Является ли их большая разница с использованием TableAdapter и SqlCommand? Эффективность? Или что-нибудь еще? – Poltergeist

+0

@Poltergeist Я сомневаюсь, что есть большая разница в эффективности, TableAdapters просто обертывают эти команды, параметры и соединения - это вовсе не использование разных технологий. – Crowcoder

+0

TableAdapters добавляет сильную типизацию и освобождает вас от самых низкоуровневых материалов. Работать с ними гораздо лучше, чем с SqlCommand. Тем не менее, если у вас есть вкус к программированию на более высоком уровне, ознакомьтесь с Entity Framework. – Gustav