SqlCommand还是SqlDataAdapter?

use*_*692 10 c# sql ado.net

我正在创建类似小型收银员应用程序的东西,记录客户,员工,服务,销售和约会.我正在使用Windows窗体,并在DataGrids中.我已经创建了我将要用于该应用程序的数据库.我想知道是否应该使用SqlCommand-SqlDataReader或SqlDataAdapter-DataSet.哪种方法更好?

dot*_*tep 14

这在很大程度上取决于您想要的操作类型.

以下是我的建议.

  1. 如果你想更快地读取数据,请转到SQLDataReader,但这也是在读取之后需要花费的操作成本.打开连接读取数据关闭连接.如果你忘了关闭它会达到性能.

  2. 转到SQLDataAdapter

    • 如果您想更快地阅读并使用Disconnected Arch的好处.ADO.net
    • 这将自动关闭/打开连接.
    • 此外,它还允许您自动将DataSet中的更新处理回DataBase.(SqlCommandBuilder)
  3. 使用SQLCommand(当您读取SQLDataReader以读取数据时也会出现这种情况)以及插入和更新.

    • 这将为您提供更好的插入和更新性能.

如果您使用的是.NET Frame 3.5 sp1或更高版本,我建议Linq to SQL或Entity Framework也可以解决您的目的.

谢谢.


ato*_*erz 5

SqlDataAdapter

  • 在您的客户端上存储数据并根据需要更新数据库.所以它消耗更多的内存.
  • 另一方面,您不需要在insert/delete/update/select命令中连接到数据库.
  • 它在内部管理连接,因此您不必担心这一点.

所有好东西来自SqlDataAdapter更多的内存消耗.它通常用于需要多个用户连接到数据库的系统.
所以我会说,如果不是你的情况,请选择SqlCommand和连接的模型.