c# - 从 Web 服务器访问 SQL 数据库的合适方法

标签 c# mysql sql sql-server dataset

我正在用 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/

相关文章:

c# - 不能在 LINQ 查询中使用三元运算符

c# - 如何将 MassTransit 演示分离为生产者和消费者应用程序

c# - win应用程序c#中使用MVC进行CRUD

c# - 在单独的线程上将数据绑定(bind)到网格控件

mysql - 如何利用join做一个简单的报表

mysql - 计算不同折扣范围的产品

mysql - 从表中删除行但保留给定的数字

Mysql 触发器 - 如何仅在特定行上触发

mysql - 来自 2 个表的 SQL 语句

sql - PostgreSQL 中的分数格式为二分之一、三分之一或四分之一