c# - 在运行时更改数据集连接字符串 vs2010

标签 c# sql dataset

我找到了一个解决方案,它必须适用于比 vs2010 更旧的版本。我想知道如何为 vs2010 执行此操作?有人知道吗?

http://www.csharpbydesign.com/2008/01/overriding-dataset-settings-co.html

让我解释得更详细一点。

我有一个 C# 生成的数据集。如何更改连接字符串,以便我可以将数据集与另一个(结构相同但填充不同的)数据库一起使用?这必须在运行时发生,因为我在编译时不知道服务器或数据库名称。我正在使用 vs2010 和 SQL Server 2008 R2 Express

最佳答案

我认为没有简单的方法,您不能以编程方式更改整个 DataSet 的连接字符串,因为它是为每个 TableAdapter 设置的。

您需要使用/创建 TableAdapter 的部分类来更改连接字符串,因为 Connection 属性是 internal(如果你的 DAL 在不同的程序集中)。不要更改 designer.cs 文件,因为它会在设计器的下一次更改后自动重新创建。要创建它,只需右键单击数据集并选择“显示代码”。

例如(假设 TableAdapter 被命名为 ProductTableAdapter):

namespace WindowsFormsApplication1.DataSet1TableAdapters
{
    public partial class ProductTableAdapter 
    {
        public string ConnectionString {
            get { return Connection.ConnectionString; }
            set { Connection.ConnectionString = value; }
        }
    }
}

现在您可以轻松更改它:

var productTableAdapter = new DataSet1TableAdapters.ProductTableAdapter();
productTableAdapter.ConnectionString = someOtherConnectionString;

这是我的示例数据集和创建的文件 DataSet1.cs 的屏幕截图:

enter image description here

关于c# - 在运行时更改数据集连接字符串 vs2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14962346/

相关文章:

c# - 打印对象列表中所有属性的最佳方法是什么?

c# - Internet Explorer 脚本错误,来自网页的消息,权限被拒绝

SQL 仅显示最近的日期时间值

java - 解析从 Java 中的 .NET Web 服务返回的 .NET 数据集

java - Spark : get number of cluster cores programmatically

c# - Visual Studio 2013 中的快捷方式 "Open in Blend"在哪里?

sql - Postgres : UPDATE a boolean column that sets all other booleans in that column to false

sql - 如何有效地连接多个表中的多行

azure - 在 Azure 机器学习工作室中使用实时数据?

c# - 动态呈现控件,从字符串/XML 文件确定类型?