【问题标题】:How do you override a TableAdapter method on a Table in a DataSet?如何覆盖 DataSet 中表的 TableAdapter 方法?
【发布时间】:2010-11-28 22:19:05
【问题描述】:

我目前声明了一个包含 3 个表的数据集。为了这个例子,我们将它们称为用户、问题和答案。

在其中的每一个上,我都有一个 TableAdapter,其中包含所需的各种方法,即。 GetData()、Update()、Delete() 等

在答案表上,我想覆盖 TableAdapter 中的更新方法以添加一些不属于表的参数,但由于 ObjectDataSource 的要求,我需要通过。

如何重写 Answer TableAdapter 上的 Update() 方法?

为了保持项目简单,我不想创建单独的 DAL 层。

【问题讨论】:

    标签: c# dataset methods overriding tableadapter


    【解决方案1】:

    任何设计人员生成的TableAdapter class标记为virtual的Appropiate成员 - 这包括UpdateFill方法等。 Hemce,解决方案是简单地从设计器生成的TableAdapter 类继承并覆盖Update 方法,在那里添加您的自定义代码。

    如果要更改方法签名(参数计数/类型),您还可以选择重载Update方法。您可以使用扩展方法在派生类中或在我的视图中更方便地进行,或者更方便地使用扩展方法:

    public static void Update(this MyTableAdapter tableAdapter, ... other params ...)
    {
        // do stuff here
        tableAdapter.Update(...);
    }
    

    【讨论】:

    • 谢谢。遗憾的是,我仍然没有掌握扩展方法的窍门。
    • 没问题。和呀,扩展方法确实需要一个略微心态的变化,但一旦你习惯了他们就会爱他们。 :)
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    相关资源
    最近更新 更多