【发布时间】:2011-12-08 08:05:24
【问题描述】:
每个人我都是学生,刚接触 .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 之间究竟有什么区别?
- 一或二哪种方法更好?
- 是否担心我在方法二中使用了可能会影响安全性或性能的快捷方式?
如果我听起来很新手或模糊不清,请提前道歉!将不胜感激任何可以清除我的概念的帮助!谢谢! :)
【问题讨论】:
标签: c# .net sqlcommand sqldataadapter