I wish to place a brand new row right into a msaccess table while using following code.

class MachineDataTable : DataTable
    public MachineDataTable()
        Columns.Add(new DataColumn("ID", typeof(int)));
        Columns.Add(new DataColumn("Name", typeof(string)));
        PrimaryKey = new DataColumn[] { Columns["ID"] };

The next code act as expected:

da.ExecuteNonQuery(@"CREATE TABLE Machine (
            ID LONG NOT NULL,
            Name TEXT NOT NULL

The DataAdapter InsertCommand is produced using:

DbCommand cmd = connection.CreateCommand();
cmd.CommandText = "Machine";
cmd.CommandType = CommandType.TableDirect;
da.InsertCommand = cmd;

I Quickly attempt to place one row.

MachineDataTable table = new MachineDataTable();
DataRow row = table.NewRow();
row["ID"] = 1234; 
row["Name"] = "Name";
int n = da.Update(table);
//n == 1

The Update call return 1 (row up-to-date) with no exceptions. After I try looking in the database using MsAccess there's no row placed.

Perhaps you have appreciated to really call the MachineTable() method around the table object of type MyDataTable from somewhere?

It appears like you may meant for the MachineTable() approach to function as the constructor from the MyDataTable class so it is not.

To the very best of my understanding, TableDirect is basically giving a SELECT query within the table, after which (following a "If execution of the command returns rows" notes from MSDN), these existing rows are now being merged. It is not doing an place/update. Maybe think about a command builder MSDN ?

(caveat: I never, ever, ever use DataAdapter - this really is based purely on my small interpretation of MSDN it might be easily wrong)