Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态创建TableAdapter实例_C#_Asp.net - Fatal编程技术网

C# 动态创建TableAdapter实例

C# 动态创建TableAdapter实例,c#,asp.net,C#,Asp.net,我有一个asp.net服务器控件,用于对记录进行签名。控件调用我的存储过程来对记录进行签名并调用日志存储过程。我通过创建表适配器的实例来调用c代码中的存储过程。我试图使它通用,以便它可以用于许多应用程序。因此,我希望我的代码基于我在使用控件的页面上设置的属性创建另一个表适配器的实例。如何以编程方式创建表适配器实例? 这是现有的代码。这适用于我使用此控件的特定页面 if (lblUniqueKey != null && lblUniqueKey.Text != "") {

我有一个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); }

有几件事需要注意:

我在另一个项目中拥有强类型数据集,其程序集是DataSetContainer 我加载该程序集和类型。 我将类型传递给Activator.CreateInstance,它实例化了myTableAdapterInstance,在我的示例中是:DataSetContainer.DataSetTableAdapters.ContactStableApter


希望这能回答您的问题:

通过使用country.eCa.HSDatasets.EFMTableAdapters.querystableadapter QTA=new rccounty.eCa.HSDatasets.EFMTableAdapters.querystableadapter;您正在以编程方式创建TableAdapter。您是否在询问如何创建一个通用表适配器,以便每个应用程序都可以提供自己版本的表适配器,并且上面的代码可以与它们一起工作?我想根据控件中属性的值创建不同表适配器的实例。我尝试使用activator.createinstance,但无法使其正常工作。属性的类型是否可以?还是一根绳子?谢谢你的建议。我决定换个方向。
var myTableAdapterType = Assembly.Load("DataSetContainer").GetType("DataSetContainer.DataSetTableAdapters.ContactsTableAdapter");
var myTableAdapterInstance = Activator.CreateInstance(myTableAdapterType);

Response.Write(myTableAdapterInstance.GetType().ToString());