C# 从DataTable向Access表添加行

C# 从DataTable向Access表添加行,c#,database,datatable,oledb,C#,Database,Datatable,Oledb,我用这段代码从Access表创建了一个DataTable DataTable dataTable = new DataTable(); ... using (OleDbConnection oledbConnection = new OleDbConnection(connection)) { oledbConnection.Open(); using (OleDbCommand oledbCommand = new OleDbCommand("SELECT * FROM Stude

我用这段代码从Access表创建了一个DataTable

DataTable dataTable = new DataTable();
...
using (OleDbConnection oledbConnection = new OleDbConnection(connection))
{
   oledbConnection.Open();
   using (OleDbCommand oledbCommand = new OleDbCommand("SELECT * FROM Student", oledbConnection))
   {
       using (OleDbDataAdapter oledbDataAdapter = new OleDbDataAdapter(oledbCommand))
       {
          oledbDataAdapter.Fill(dataTable);
       }
   }
}
后来,我通过插入带有此代码的新行来更改datatable

DataRow dataRow = dataTable.NewRow();
dataRow["FirstName"] = "John";
dataRow["LastName"] = "Connor";
dataTable.Rows.Add(dataRow);
dataTable.GetChanges();
如何将此更改引入access数据库? 以下代码正确吗

using (OleDbConnection oledbConnection = new OleDbConnection(connectionString))
{
   OleDbDataAdapter oledbDataAdapter = new OleDbDataAdapter();
   oledbDataAdapter.SelectCommand = new OleDbCommand(queryString, oledbConnection);
   OleDbCommandBuilder oledbCommandBuilder = new OleDbCommandBuilder(oledbDataAdapter);
   connection.Open();
   oledbDataAdapter.DeleteCommand = oledbCommandBuilder.GetDeleteCommand(true);
   oledbDataAdapter.InsertCommand = oledbCommandBuilder.GetInsertCommand(true);
   oledbDataAdapter.UpdateCommand = oledbCommandBuilder.GetUpdateCommand(true);
   oledbDataAdapter.Update(dataTable);
   connection.Close();
}
您必须在为DataTable中的行插入键入的代码之后使用insert query将其插入Access DB


这是因为DataTable是保存在内存中的一种断开连接的体系结构,这意味着它从数据库中获取数据,而不再与其连接。

您必须重新打开连接并插入该数据库。SQL可以是这样的:

string sql = String.Format("INSERT INTO Students(FirstName,LastName) VALUES({0},{1})", "John", "Connor")

但是您不能将我的DataTable直接复制到Access文件中?不完全确定,但我认为不显式重新打开连接是不可能的。您能帮助我或建议一种复制整个DataTable的方法吗?这是非常重要的。这个链接可能是你正在寻找的。您应该能够传入修改后的datatable。但是您不能将我的datatable直接复制到Access文件中吗?