C# でデータベースを操作する方法について学習しようとしていますが、DataSet 、 SqlDataAdapter 、および SqlCommandBuilder を操作する必要があるチュートリアルの一部に到達しました。これは、チュートリアルの例で記述したコードです。
public void InitData() {
//instantiate the connection
conn = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=\"D:\\Projects IDE\\Visual Studio\\Exercitii\\Console.app\\WindowsFormsApplication1\\WindowsFormsApplication1\\PlanetWrox.mdf\";Integrated Security=True;User Instance=True");
//1.instantiate a new DataSet
dsCustomers = new DataSet();
//2.init SqlDataAdapter with select command and connection
daCustomers = new SqlDataAdapter("SELECT Id ,Name, SortOrder FROM Genre", conn);
// 3. fill in insert, update, and delete commands
SqlCommandBuilder cmdBldr = new SqlCommandBuilder(daCustomers);
// 4. fill the dataset
daCustomers.Fill(dsCustomers, tableName);
}
public void btnUpdateClicked(object sender, EventArgs e) {
// write changes back to DataBase
daCustomers.Update(dsCustomers, tableName);
}
ここで理解できないことがいくつかあります。
最初に気付いたのは、データベースを開いたり閉じたりする必要がないということです。データベースに関する限られた知識から、データにアクセスするにはデータベースへの接続を開く必要があり、完了後にはそれを閉じる.これは舞台裏のどこかで起こっているに違いない.そうですか? それがそうなら、魔女の方法はそれをしますか?
2 番目の質問は、SqlDataAdapter と SqlCommandBuilder に関するものです。ここで SqlCommandBuilder が何をしているのかわかりません。SQL クエリを実行しているのは SqlDataAdapter ではありませんか?