1

我知道这看起来很简单,但似乎不起作用。我在 MsAccess 数据库中有一个表是空的,但它在某些时候确实有一些记录,当我执行 DataTable.NewRow 时,它返回一个新行,其中 objectid 字段为 0(自动增量字段)。在我将这个新行提交到数据库之后,它的 objectid 为 84(或者它认为下一个数字应该是什么),但我需要在提交之前有正确的 objectid 值,因为它在连接表中使用。如果我的数据表上至少有 1 条记录并执行 datatable.NewRow,那么新行的 objectid 将是正确的 84。这是我用来获取数据表的代码:

                string sSQL = "Select * from <tableName>"                   
                IDbDataAdapter dbAdapter = GetDataAdapter(sSQL);
                dbAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                if (DbConnection.State == ConnectionState.Closed)
                    DbConnection.Open();
                try
                {
                    DataAdapterFill(dbAdapter, dataSet, sTableName);
                }
                catch (OleDbException oledbEx)
                {
                    if (oledbEx.Message.Contains("No value given for one or more required parameters"))
                        throw new Exception(string.Format("Where clause {0} contains correct fields for table {1}", sWhereClause, sTableName), oledbEx);
                    else
                        throw oledbEx;
                }
                catch
                {
                    DbConnection.Close();
                    ((IDisposable)dbAdapter).Dispose();
                    throw;
                }
                dbAdapter.TableMappings.Add(sTableName, sTableName);
                dataTable = dataSet.Tables[0];
4

0 回答 0