我试图将Here中找到的C#代码翻译成VB。我很成功但在Tab
foreach(DataColumn C in Tab.Columns)
中遇到了private void My_OnRowUpdate(object sender, OleDbRowUpdatedEventArgs e)
{
if(e.StatementType==StatementType.Insert)
{
// reads the identity value from the output parameter @ID
object ai = e.Command.Parameters["@ID"].Value;
// updates the identity column (autoincrement)
foreach(DataColumn C in Tab.Columns)
{
if(C.AutoIncrement)
{
C.ReadOnly = false;
e.Row[C] = ai;
C.ReadOnly = true;
break; // there can be only one identity column
}
}
e.Row.AcceptChanges();
}
}
的麻烦。
显然它不是一个全局变量......但他并没有在任何地方定义它。
方法就是这个:
{{1}}
也许我误会了什么?
答案 0 :(得分:1)
由于RowUpdated
事件将OleDbRowUpdatedEventArgs
作为参数传递,您可以使用它的Row
属性来获取对表的引用。这比文章更好:
private void My_OnRowUpdate(object sender, OleDbRowUpdatedEventArgs e)
{
if(e.StatementType==StatementType.Insert)
{
// reads the identity value from the output parameter @ID
object ai = e.Command.Parameters["@ID"].Value;
// updates the identity column (autoincrement)
foreach(DataColumn C in e.Row.Table.Columns)
{
if(C.AutoIncrement)
{
C.ReadOnly = false;
e.Row[C] = ai;
C.ReadOnly = true;
break; // there can be only one identity column
}
}
e.Row.AcceptChanges();
}
}