每个人我都是学生,是 .NET 和特别是 MVC3 开发的新手,但是对于我的一个项目,我必须完成它,因此我面临的问题和困惑是关于 DB-Connectivity 的问题和困惑,我精益求精关于从数据库中检索记录是这样的:
//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 Library时,我发现 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 之间实际上有什么区别?
- 哪种方法更好一或二?
- 是否担心我在方法二中使用了可能会影响安全性或性能的快捷方式?
如果我听起来很新手或模糊,请提前道歉!将不胜感激任何可以清除我的概念的帮助!谢谢!:)