从访问复制数据到现有SQL Server表

本文关键字:SQL Server 访问 复制 数据 | 更新日期: 2023-09-27 18:08:31

这段代码从访问SQL server表复制数据。但是这段代码有一些问题。

  1. 这个代码不能复制数据从访问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");
                    }
                }
    

    从访问复制数据到现有SQL Server表

    SQLBulkCopy只做大容量插入,所以不应该修改任何现有的数据。

    对于MS Access> 2003,您需要使用Microsoft ACE而不是JET