什么" Tab" of" Tab.Columns"意味着这个代码

时间:2016-04-28 10:50:20

标签: c# oledb

我试图将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}}

也许我误会了什么?

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();             
   }
}