【问题标题】:Can you change a typed datasets provider?你能改变一个类型化的数据集提供者吗?
【发布时间】:2013-08-07 23:30:16
【问题描述】:

使用 C# 我使用 vs2010 创建了一个数据集。我通过从 SQL Server 数据表中拖放来添加表和表适配器。

我想使用创建的数据集的表,但连接到访问数据库。我怎样才能做到这一点?

我在这里要做的是制作一个可以连接到使用相同数据集和数据表的 sql 数据库或 access 数据库的应用程序。这甚至可能吗?

【问题讨论】:

  • 是的,这是可能的。您将如何选择在任何给定时间使用的数据库?
  • access和sql中的表是一样的吗?
  • 是的,access和sql中的表是一样的。数据库将在启动时选择。
  • 只是好奇你为什么要连接到Access DBSql DB,如果两者的数据相同且都是最新的,为什么不使用这些条款中更好的提供者@ 987654323@请在您的问题中更具体地说明您为什么需要这个..
  • 对于糟糕的数据库设计似乎是一种笨拙的解决方法。也许你应该解决根本问题?

标签: c# sql ado.net dataset


【解决方案1】:

我同意@Phrancis...我的建议是 sql express 用户实例而不是访问。这将实现无缝切换。按照@Brij Raj Singh 从 codemonk 发布的示例来实现应用程序级连接字符串,您将被设置。

但如果你还想这样做:

  1. 确保您的数据绑定是在代码中完成的,而不是视觉上的。
  2. 复制您的数据集,将其连接到 Access
  3. 创建工厂以将您的数据集作为数据源提供
  4. 绑定时使用工厂获取数据源
  5. 在应用启动时实现选择,并将此选择传递给工厂类,以便它可以提供正确的数据源

【讨论】:

    【解决方案2】:

    当然,您可以在运行时更改连接以填充您的强类型数据集,只要架构相似。

    http://thecodemonk.com/2008/02/18/tableadapter-connection-strings/

    我没玩过,但理论上看起来很有希望

    【讨论】:

      【解决方案3】:
      1. 您不能在 SQL Server 和 Access 数据库之间混用,因为 是查询类型的差异..
      2. 您根本无法更改数据集的提供者,因为如果您查看已创建的数据集类,您会发现它可以与 OLEDB 或 SQL 一起使用

      【讨论】:

      • 我认为第一个陈述不是 100% 准确的。 SELECT * FROM table; 语句在两个数据库引擎上都可以正常工作
      猜你喜欢
      • 2023-04-11
      • 1970-01-01
      • 2010-11-10
      • 2019-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      相关资源
      最近更新 更多