C#中Table Adapter呈灰色时,如何将其拖入Windows Form?
解决C#窗体设计器中无法拖放TableAdapter的问题
为什么工具箱里的TableAdapter呈灰色?
TableAdapter本质是绑定到DataSet的数据访问组件,它不属于窗体的直接可视化/非可视化控件范畴,因此不能直接从工具箱拖到窗体设计器底部的组件栏。
正确添加TableAdapter到窗体组件栏的步骤
方法1:通过DataSet设计器创建后关联到窗体
- 打开项目中的DataSet文件(后缀为
.xsd,双击打开设计器) - 在DataSet设计器中添加TableAdapter:
- 右键空白区域,选择
添加 -> TableAdapter,跟着向导完成配置(选择已有的数据库连接、编写查询/选择存储过程) - 或者从数据源窗口(按
Ctrl+Shift+D调出)把目标数据表直接拖到DataSet设计器,自动生成对应TableAdapter
- 右键空白区域,选择
- 回到窗体设计器,从数据源窗口把刚才生成的TableAdapter对应的表拖到窗体上,系统会自动在窗体底部组件栏添加该TableAdapter的实例,同时自动关联你已有的BindingSource。
方法2:手动在窗体中声明并初始化TableAdapter
如果不想通过拖放操作,可手动完成:
- 打开窗体的代码文件(按
F7),切换到设计器生成的代码文件(如Form1.Designer.cs) - 在组件声明区域添加TableAdapter实例:
private YourDataSetNameTableAdapters.YourTableNameTableAdapter _yourTableAdapter; - 在窗体构造函数或
Load事件中初始化并关联BindingSource:public Form1() { InitializeComponent(); _yourTableAdapter = new YourDataSetNameTableAdapters.YourTableNameTableAdapter(); // 填充DataSet并关联BindingSource _yourTableAdapter.Fill(yourDataSetInstance.YourTableName); yourBindingSource.DataSource = yourDataSetInstance.YourTableName; }
内容的提问来源于stack exchange,提问作者netcat
相关产品推荐
相关产品推荐

