Запутан между SqlCommand и SqlDataAdapter

все, кто я являюсь студентом и новичок в .NET и особенно в разработке MVC3, но для одного из моих проектов я должен над ним поработать и пройти фазу обучения относительно получения записей из базы данных это что-то вроде этого:

//Method One:
var conn = new SqlConnection(conString.ConnectionString);
const string cmdString = "Select * FROM table";
var cmd = new SqlCommand(cmdString, conn); 
var mySqlDataAdapter = new SqlDataAdapter(cmd);
mySqlDataAdapter = new SqlDataAdapter(cmd);
mySqlDataAdapter.Fill(myDataSet, "design");
// making a new SqlCommand object with stringQuery and SqlConnection object THEN a new SqlDataAdapter object with SqlCommand object and THEN filling up the table with the resulting dataset.

Но пока я проверялБиблиотека MSDN я обнаружил, что SqlDataAdapter предлагает конструкторы SqlDataAdapter (String, String), которые непосредственно принимают SelectCommand и строку подключения для инициирования, таким образом пропуская роль SqlCommand между ними, например так:

//Method Two:
var conn = new SqlConnection(conString.ConnectionString);
const string cmdString = "Select * FROM table";
var mySqlDataAdapter = new SqlDataAdapter(cmdString, conn);
mySqlDataAdapter.Fill(myDataSet, "design");

Выглядит коротко и красиво для меня, но я смущен здесь тем, что, если это возможно таким образом, то почему большинство книг / учителей уходит раньше (SqlCommand).

В чем разница между SqlCommand и SqlDataAdapter?Какой метод лучше Один или Два?Боюсь, я использую ярлык во втором методе, который может повлиять на безопасность или производительность?

Заранее извиняюсь, если я звучу очень новичком или размытым! Буду признателен за любую помощь, которая может прояснить мои концепции! Спасибо! :)

Ответы на вопрос(2)

Ваш ответ на вопрос