2014-10-06 122 views
0

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

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); } 
+0

这样做County.eCa .HSDatasets.EFMTableAdapters.QueriesTableAdapter QTA = new RCounty.eca.HSDatasets.EFMTableAdapters.QueriesTableAdapter();你正在编程创建一个TableAdapter。你在问如何创建一个* generic *表适配器,以便每个应用程序都可以给它们自己的表格适配器版本,并且你的代码可以与上面的所有代码一起工作? – 2014-10-06 18:43:38

+0

我想根据控件中属性的值创建不同表格适配器的实例。我尝试使用activator.createinstance,但我无法得到这个工作。 – jrupp 2014-10-07 18:49:07

+0

该属性可以是“类型”类型吗?或者它是一个字符串? – 2014-10-07 21:40:54

回答

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()); 
    

希望这回答你的问题:)

+0

感谢您的建议。我决定去一个不同的方向。 – jrupp 2014-10-08 20:34:15