C#

时间:2017-09-09 21:09:39

标签: c# generics datatable

我想使用我创建的泛型类

public class ClienteleReport<TClientSource>
{        
    private TClientSource _clients { get; set; }
    private SqlCntr _conn { get; set; }

    public ClienteleReport(TClientSource clients, SqlCntr conn)
    {
        _clients = clients;
        _conn = conn;
    }

    public void LoadDataForReport(string[] filter, string order = "asc", int returnTop = -1)
    {

    }

}

当我实例化类时,我将数据表对象和数据库连接对象作为参数传递给它。

完成后,我想使用LoadDataForReport方法执行过滤和各种其他功能。如何处理_clients作为数据表?如果可能,我该如何返回Datatable对象?

调用泛型类的代码列在下面

    private SqlCntr _conn;        
    public ClientReportForm(DataTable clients, SqlCntr conn)
    {
        InitializeComponent();
        if (conn == null)
        {
            return;                
        }

        _conn = conn;

        var ClientReportObj = new ClienteleReport<DataTable>(clients, _conn);

        ClientReportObj.LoadDataForReport(new[] {""}, "asc");
    }

我正在编写备件管理应用程序,其中包括仓库和客户。上面的代码与报告有关。我想创建一个报告,过滤作为参数传递的原始数据。

它背后的逻辑是返回一个过滤的数据对象(99%的时间将是一个DataTable),但我想使用泛型,以便能够与其他数据源如文本文件,JSON,XML一起使用等

客户端对象是DataTable,_conn对象是数据库连接对象,它将执行插入,删除,更新功能以及我已经实现的更多功能。

我认为现在在解释我想做的事情方面会更好。如果您需要任何进一步的细节,请告诉我。

1 个答案:

答案 0 :(得分:0)

显然,解决方案是使用如下的约束

public class ClienteleReport<TClientSource> where TClientSource : DataTable
谢谢你的时间。