Путаница между SqlCommand и SqlDataAdapter

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

//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");

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

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

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

9
задан Darin Dimitrov 15 October 2011 в 12:43
поделиться