【问题标题】:Dynamic Connection String for a Strongly Typed Dataset强类型数据集的动态连接字符串
【发布时间】:2011-01-07 11:11:09
【问题描述】:

我有一个 asp.net nTier 应用程序。数据访问层是一个强类型数据集,由多个带有 DataAdapter 的 DataTables 组成。当用户登录时,他们选择连接到哪个数据库(从成员数据库中的表)。我需要将选定的连接字符串传递给 DataSet 对象,该对象在用户再次登录之前将保持不变。

我认为答案可能是创建 DataSet 对象的部分类,我可以在其中将连接字符串传递给构造函数。不过我不知道该怎么做。

干杯

【问题讨论】:

    标签: asp.net string dynamic dataset connection


    【解决方案1】:

    终于明白了。在一个新模块中,我为表适配器创建了一个部分类,我需要在其中更改连接字符串,我最初犯的一个错误是没有指定正确的命名空间。

    下面是我创建的部分类,它允许我为一个名为 tblOptions 的表动态更改我的一个表适配器的连接字符串:

    Namespace ds1TableAdapters
        Partial Public Class tblOptionsTableAdapter
            Sub ChangeConnString(ByVal newConn As String)
                Me._connection.ConnectionString = newConn
            End Sub
        End Class
    End Namespace
    

    感谢威尔的帮助,它让我朝着正确的方向前进。

    【讨论】:

      【解决方案2】:

      您可以使用部分类来做到这一点。

      假设您的类型化数据集称为 HurrDurr:

      public partial class HurrDurr
      {
        public HurrDurr(string connex)
        {    
          this._connection = new global::System.Data.SqlClient.SqlConnection();
          this._connection.ConnectionString = connex;
        }
      }
      

      _connection 仅在第一次访问 Connection 内部属性时为 null 时才被初始化。

      【讨论】:

      • 请问,我在 vb.net 中尝试了您的建议,但我收到错误消息:“错误 33 _connection 不是 DAL.ds1 的成员”。任何想法我哪里出错了?
      • @fly 我不知道 .ds1 文件是什么。您可以查看类型化数据集工具创建的代码(展开 xsd 并查看代码文件)。 VB 版本可能会以不同的变量名保存连接。
      • 对不起,我应该更清楚。 DAL.ds1 指的是项目名称“DAL”和数据集名称“ds1”。 “ds1”是从 xsd 生成的类,我假设这就是您所说的 HurrDurr。查看代码后,我确实在表适配器中看到了一个 _connection 成员变量?这是我需要创建一个部分类吗?
      • 您需要创建一个public partial class ds1 并在构造函数中使用您的新连接字符串创建一个SqlConnection 并将其分配给_connection。
      猜你喜欢
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多