【问题标题】:Where should I declare a general GetDataRow method in a typed DataSet?我应该在类型化 DataSet 中的何处声明通用 GetDataRow 方法?
【发布时间】:2011-08-23 17:44:39
【问题描述】:

我正在将使用大量手动动态 SQL 的报表代码转换为使用动态数据集,但仍有很多情况用于临时查询和插入。当前代码使用例如clsFunctions 中的 GetDataRow 静态方法(是的,我知道,太可怕了!),但我想将此函数重新定位到我正在建立的数据层。在我的类型化表适配器上使它成为扩展方法让我想到了,因为它们具有定义的连接属性,所以我知道我总是使用与其他数据访问代码相同的连接,但是类型化表适配器没有真正的基类将方法添加到,因为它们都只从 Component 派生,并生成它们的“共享”函数。

我应该将我的 GetDataRow 方法放在基于类型数据集的数据层中的什么位置?

【问题讨论】:

    标签: .net .net-4.0 dataset strongly-typed-dataset


    【解决方案1】:

    由于动态表适配器是部分类,只需创建另一个部分类即可将您的特殊功能添加到表适配器。

    在此示例中,我有一个名为“dsMain”的数据集和一个用于“文档”表的 tableadapter。

    namespace dsMainTableAdapters
    {
        public partial class DocumentTableAdapter
        {
            public dsMain.DocumentRow GetDataRow()
            {
                System.Data.SqlClient.SqlConnection oconn = this.Connection;
    
                //now Run your custom code on the connection
    
            }
        }
    }
    

    现在您的表适配器中应该有一个名为“GetDataRow”的新方法。

    只要您使用数据集 tableadapter 的 EXACT 命名空间和 tableadapter 的 EXACT 类名,您就应该能够访问任何您想要的连接对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 1970-01-01
      相关资源
      最近更新 更多