Dav*_*vid 2 .net c# data-binding listbox tableadapter
我用标准的智能控制器制作了一个ListBox,并将它连接到数据库.它通过查询构建器获取我在那里预先生成的数据,所以当我这样做时:
this.calibrate_swipesTableAdapter.Fill(this.xperdex_crandallDataSet.calibrate_swipes);
Run Code Online (Sandbox Code Playgroud)
我得到一个包含我的数据的列表框.
那么,当我向它添加一大块数据时,通过这个:
toadd["card_number"] = card_number;
this.xperdex_crandallDataSet.Tables["calibrate_swipes"].Rows.Add(toadd);
Run Code Online (Sandbox Code Playgroud)
它也有效.它很棒.现在,当我关闭时,我失去了所有的信息.更新我的适配器和AcceptChanges,对吗?
没那么快.我打电话的时候
this.calibrate_swipesTableAdapter.Update(this.xperdex_crandallDataSet.calibrate_swipes);
Run Code Online (Sandbox Code Playgroud)
我得到"不包含'更新'的定义".
是什么赋予了?我没有看到为什么填充相同的事情没有任何理由,也没有更新方法.
您可能需要查看TableAdapter概述,其中指出:
如果主查询中有足够的信息,则在生成TableAdapter时,默认情况下会创建InsertCommand,UpdateCommand和DeleteCommand命令.如果TableAdapter的主查询不只是单个表SELECT语句,则设计器可能无法生成InsertCommand,UpdateCommand和DeleteCommand.如果未生成这些命令,则在执行TableAdapter.Update方法时可能会收到错误.
你有两个选择:
要更改UpdateCommand,请找出为TableAdapter生成的类的名称.代码应如下所示:
SqlCommand yourUpdateCommand = new SqlCommand("UPDATE...", connection);
this.calibrate_swipesTableAdapter.Adapter.UpdateCommand = yourUpdateCommand;
Run Code Online (Sandbox Code Playgroud)
更新:
正如评论者所说,还有其他条件可能无法生成命令.查看评论.
| 归档时间: |
|
| 查看次数: |
5964 次 |
| 最近记录: |