- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 tableadapter,我想在触发 RowUpdated 事件时做一些事情。我不知道将代码放在哪里以将处理程序添加到事件。
public partial class MyTableAdapter
{
void OnRowUpdated(object sender, System.Data.Odbc.OdbcRowUpdatedEventArgs e)
{
}
}
如何让下面的代码在创建 TableAdapter 时运行?
Adapter.RowUpdated +=
new System.Data.Odbc.OdbcRowUpdatedEventHandler(OnRowUpdated);
最佳答案
我分两个阶段解决了这个问题。
一个。添加部分类并扩展表适配器
在使用此适配器之前先调用一个方法(比如在创建它的实例后以主形式调用)。
下面的代码用于解决我的 SQL CE 特定问题,以便能够更新表上的 ID。但是,您可以使用扩展方法包装 RowUpdated 事件并将其公开给其他类(即 MyRowUpdated)
扩展
public partial class ScannedItemsTableAdapter
{
public void InitEvents()
{
this._adapter.RowUpdated += _adapter_RowUpdated;
}
void _adapter_RowUpdated(object sender, SqlCeRowUpdatedEventArgs e)
{
if (e.Status == UpdateStatus.Continue &&
e.StatementType == StatementType.Insert)
{
var pk = e.Row.Table.PrimaryKey;
pk[0].ReadOnly = false;
SqlCeCommand cmd = new SqlCeCommand("SELECT @@IDENTITY",
e.Command.Connection, e.Command.Transaction);
object id = (decimal)cmd.ExecuteScalar();
e.Row[pk[0]] = Convert.ToInt32(id);
e.Row.AcceptChanges();
}
}
}
主窗体中的调用:
tableAdapter = new ScannedItemsTableAdapter();
tableAdapter.Fill(ds.ScannedItems);
tableAdapter.InitEvents();
关于c# - 如何将事件处理程序添加到表适配器中的 RowUpdated 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3243881/
我有以下 GridView: 我想更新通过编辑按钮选择的行。问题是,如果我尝试在 gridCar_RowUpdating 中执行此操作,e.NewValues 不包含编辑后的值,而是包含旧值。 我四
我有以下 GridView: 我想更新通过编辑按钮选择的行。问题是,如果我尝试在 gridCar_RowUpdating 中执行此操作,e.NewValues 不包含编辑后的值,而是包含旧值。 我四
我使用以下代码在 OnUpdating 命令期间更新 gridview 中的值, protected void grid_view_RowUpdating(object sender, GridVie
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditInde
当尝试更新 GridView 数据时,它成功运行,但它获取的是旧数据而不是您在文本框中键入的数据。 这是我的: protected void GridView1_RowUpdating(object
我有一个 tableadapter,我想在触发 RowUpdated 事件时做一些事情。我不知道将代码放在哪里以将处理程序添加到事件。 public partial class MyTableAdap
我只是在测试我是否会在没有运气的情况下从文本框中获取更改的值。我只是无法获得新的值(value)。我究竟做错了什么?我已经尝试了很多东西。这是最新的。如何将更新后的新值添加到我的标签中?当我单击网格上
我有一个带有 AutoGenerateColumns="False" 的 Gridview。 我使用 TemplateField 在 GridView 的第一列中相应的 ItemTemplate 和
我正在尝试更新数据库中的一行。其他一切都工作正常,删除、创建、列出,但编辑一行给了我一个 createSQLFeatureNotSupportedException @Override pub
我正在使用 GridView 。当我单击编辑按钮时,会出现更新和取消按钮。 在修改来自 EditItemTemplate 的文本框中的值后,新值不会显示在事件处理程序 rowupdating() 中,
HTML 页面:
我在使用 RowUpdating 方法时遇到问题。我的 GridView 已连接到我们的本地 SQL Server,我正在尝试更新数据。以下是来自 MSDN 的 RowUpdating 方法的代码。
所以我在 OnRowUpdating 事件期间在 Gridview 中进行更新时遇到问题。 我想做的是在 SqlDataSource 中设置 UpdateCommand,然后使用该命令进行更新。事件正
我的 GridView 有问题。当我尝试编辑我的 GridView 时,我只得到旧值作为返回。 这是 RowUpdating 事件: protected void grid_RowUpdating(o
我遇到的问题是当我运行代码时遇到这个错误: "Cannot insert the value NULL into column 'OnHand', table 'C:\USERS\UNKNOWN\DE
I use TemplateField to create dropdownlist in 2nd column when in edit mode. but it cannot be find
我有一个 gridView,它有一个编辑、删除、更新和取消链接按钮来执行受尊重的功能。 编辑、删除和取消命令工作正常。 但问题是RowUpdating当我单击 gridView 上的更新链接按钮时,不
我一直在努力寻找一种方法来在我的 GridView 中获取标签的“旧”值。我试过使用 hiddenFields 来保存它们(这会给我这个错误) Error when using hiddenField
我已经能够解决最初无法一致插入记录的问题,但出现了新的错误消息。 现在,我收到GridView“GridView1”触发了未处理的事件RowUpdating。 当我单击“更新”按钮更新一行记录时,会发
我是一名优秀的程序员,十分优秀!