以编程方式更改 .net 强类型数据集中的表名

Posted

技术标签:

【中文标题】以编程方式更改 .net 强类型数据集中的表名【英文标题】:programmatically change table names in .net strong typed dataset 【发布时间】:2010-10-29 10:13:21 【问题描述】:

嗨 我使用 .net framework 3.5 的强类型数据集开发了一个应用程序。 有没有办法以编程方式更改 tableadapter 的源表? 谢谢

【问题讨论】:

【参考方案1】:

有几种方法可以做到这一点。首先,您可以添加一个从不同表中提取的新查询,然后执行该查询的方法,只要列匹配它就可以工作。

如果您需要动态更改可以访问表适配器的命令集合的语句之一,但它是受保护的,因此最简单的方法是创建一个部分类来扩展由设计师。完成此操作后,您可以添加自己的方法来返回数据。您可以使用 adapter.CommandCollection[0].CommandText 来获取和设置创建的默认 GetData 命令的 SQL。

完成此操作后,您可以更改它、清除参数、添加新参数或任何您想做的事情,然后使用更改后的 SQL 设置 CommandText,并调用 GetData 或任何您想要的命名命令,它会像往常一样执行和返回。

这是一个代码示例:

using System.Data.SqlClient;
namespace DataTableAdapters

    public partial class Data_ItemTableAdapter
    

        public Data.Data_ItemDataTable GetDynamicExample(string SearchValue)
        

            using (Data_ItemTableAdapter a = new Data_ItemTableAdapter())
            
                SqlCommand cmd = a.CommandCollection[0];
                cmd.Parameters.Clear();
                string SQL = @"Select Data_Item_ID, Data from Data_Item where
                        SearchValue = @SearchValue";
                cmd.CommandText = SQL;
                cmd.Parameters.AddWithValue("@SearchValue", SearchValue);
                return a.GetData();

            

        
    

【讨论】:

以上是关于以编程方式更改 .net 强类型数据集中的表名的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 .NET 中向强类型数据集添加接口?

如何更改 asp.net identity 3 (vnext) 使用的表名?

通过 vb.net 以编程方式创建 Access 数据库

如何以编程方式替换 .NET 程序集中的嵌入式资源?

如何以编程方式更改发布类型?

vb.net bindingSource 和 bindingNavigation 以编程方式