我正在用 C# 编写一个网络服务器来访问 SQL 数据库。目前仅使用 Visual Studio 附带的 SQL Server Express,但我需要将来能够灵活地使用其他 SQL 实现。 (例如 MySQL)
我正在研究数据访问层,并试图找出最好的方法。似乎有很多选择。
- DataSet - 我对此不太了解 - 我添加了一个简单的 DataSet 到我的项目中,使用IDE,似乎增加了很多难以理解的东西 自动生成的代码,除了检索整个表,然后自己解析它之外,我无法理解如何使用它。
- Linq to SQL - 对此不感兴趣,因为“仅限 SQL Server”实现。
- Linq to DataSet - 使用 Linq 查询检索数据集。
- 直接 SQL - SqlConnection、SqlCommand 等
我熟悉 SQL,并且能够轻松编写自己的 SQL 命令。这个方法对我来说似乎没问题,但是现在有了更现代的方法,我是否完全疯狂地构建自己的 DAL 接口(interface)类并编写 SQL 代码来填充它们?
查询数据集是否比在 SQL 中查询更容易或更灵活? 我是否必须为每个不同的查询创建不同的数据集?或者数据集是否加载整个表并进行查询?
我还担心数据集在适应数据集下不同或变化的数据方面的灵 active 。如果我开始向表中添加和删除列,是否会弄乱数据集,和/或破坏使用数据集的现有代码?
我有点守旧,相信一切都要简单。我应该坚持并学习如何使用 DataSet,还是开始直接创建我自己的接口(interface)类并构建 SQL 查询来填充它们?
最佳答案
对于您对数据集的担忧,好吧,您可以更有效地进行查询来填充您的数据集,这样每当有人在数据库中编辑您的数据时,您就不会出现数据问题。这也回答了您的问题“这会弄乱数据集吗?”,既然您对数据集有查询,它就不会再弄乱您的数据集,因为您正在从后端(数据库)操作数据并且只是通过代码检索/传递值。另一个是,您必须开始直接为当今常用的面向对象方法创建自己的接口(interface)类。
忠告,每当您尝试使用 SqlCommand
时,最好有一个存储过程,而不是有一个纯文本(查询字符串)来在数据操作期间保护您的数据。
关于c# - 从 Web 服务器访问 SQL 数据库的合适方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29340648/