从访问复制数据到现有SQL Server表
本文关键字:SQL Server 访问 复制 数据 | 更新日期: 2023-09-27 18:08:31
这段代码从访问SQL server表复制数据。但是这段代码有一些问题。
- 这个代码不能复制数据从访问SQL server表,那里有数据。
我的SQL server表有一些数据,我想在SQL server表中添加从访问到现有数据的数据。
如何向现有表添加数据?
- 无法读取访问2007或2010的数据。
如何从access 2007/2010读取数据
OpenFileDialog openfiledialog1 = new OpenFileDialog();
openfiledialog1.Title = "select access file";
openfiledialog1.Filter = "Access 2003 (*.mdb)|*.mdb|Access 2007|*.accdb";
if (openfiledialog1.ShowDialog() == DialogResult.OK)
{
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + openfiledialog1.FileName;
const string connectionStringDest = @"server=ahmad-pc'anfd;database = phonebook;Integrated Security = true";
using (var sourceConnection = new OleDbConnection(connectionString))
{
sourceConnection.Open();
var commandSourceData = new OleDbCommand("SELECT * from numberperson", sourceConnection);
var reader = commandSourceData.ExecuteReader();
using (var destinationConnection = new SqlConnection(connectionStringDest))
{
destinationConnection.Open();
using (var bulkCopy = new SqlBulkCopy(destinationConnection))
{
bulkCopy.ColumnMappings.Add("name", "nameperson"); //THIS A MAPPING REPLACE IT WITH YOUR NEED
bulkCopy.ColumnMappings.Add("family", "family1");
bulkCopy.DestinationTableName = "profile2";
try
{
bulkCopy.WriteToServer(reader);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
reader.Close();
}
}
}
MessageBox.Show("success");
}
}
SQLBulkCopy只做大容量插入,所以不应该修改任何现有的数据。
对于MS Access> 2003,您需要使用Microsoft ACE而不是JET