动态创建TableAdapter实例

时间:2014-10-06 18:29:08

标签: c# asp.net

我有一个用于签名记录的asp.net服务器控件。控件调用我的存储过程来对记录进行签名并调用日志记录存储过程。我通过创建表适配器的实例来调用我的c#代码中的存储过程。我试图使它通用,以便它可以用于许多应用程序。所以我希望我的代码根据我在使用控件的页面上设置的属性创建不同表适配器的实例。如何以编程方式创建表适配器实例? 这是现有的代码。这适用于我使用此控件的特定页面。

if (lblUniqueKey != null && lblUniqueKey.Text != "")  {
    int keyValue = Convert.ToInt32(lblUniqueKey.Text);
    RCounty.eCa.HSDatasets.EFMTableAdapters.QueriesTableAdapter QTA =
    new RCounty.eca.HSDatasets.EFMTableAdapters.QueriesTableAdapter();
    QTA.EFspSupSign(keyValue, UniqueKeyName, empid, empname); }

1 个答案:

答案 0 :(得分:0)

有几点需要注意:

  1. 我在另一个项目中有强类型数据集,其程序集是“DataSetContainer”
  2. 我加载了该程序集和类型。
  3. 我将类型传递给Activator.CreateInstance并实例化myTableAdapterInstance,在我的例子中是DataSetContainer.DataSetTableAdapters.ContactsTableAdapter

    var myTableAdapterType = Assembly.Load("DataSetContainer").GetType("DataSetContainer.DataSetTableAdapters.ContactsTableAdapter");
    var myTableAdapterInstance = Activator.CreateInstance(myTableAdapterType);
    
    Response.Write(myTableAdapterInstance.GetType().ToString());
    
  4. 希望这能回答你的问题:)