みんな私は学生で、.NET、特にMVC3開発は初めてですが、私のプロジェクトの1つでは、それに取り組む必要があるため、学習段階を経て、直面している問題と混乱はDB接続に関するものです。データベースからのレコードの取得に関しては、次のようなものです。
//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 が、SelectCommand と接続文字列を直接受け取るコンストラクター SqlDataAdapter(String, String) を提供していることがわかったので、次のように、その間に 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 の実際の違いは何ですか?
- OneとTwoのどちらの方法が優れていますか?
- セキュリティやパフォーマンスに影響を与える可能性のある方法 2 でショートカットを使用しているのではないかと心配していますか?
私が非常に初心者またはぼやけているように聞こえる場合は、事前にお詫び申し上げます。私の概念を明確にすることができる助けに感謝します! ありがとうございました!:)