Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何立即将数据从SQL Server数据库复制到本地SQL Server CE数据库_Sql Server_Vb.net_Sql Server Ce - Fatal编程技术网

Sql server 如何立即将数据从SQL Server数据库复制到本地SQL Server CE数据库

Sql server 如何立即将数据从SQL Server数据库复制到本地SQL Server CE数据库,sql-server,vb.net,sql-server-ce,Sql Server,Vb.net,Sql Server Ce,问题是:我可以使用SQL Server CE将数据从SQL Server数据库复制到本地(.sdf),使用以下代码: Public Sub synctrackingstatus() connection() sqltable = New DataTable adap = New SqlClient.SqlDataAdapter adap = New SqlClient.SqlDataAdapter("SELECT * from

问题是:我可以使用SQL Server CE将数据从SQL Server数据库复制到本地(
.sdf
),使用以下代码:

 Public Sub synctrackingstatus()

        connection()
        sqltable = New DataTable
        adap = New SqlClient.SqlDataAdapter
        adap = New SqlClient.SqlDataAdapter("SELECT * from TRACKINGSTATUS", con)
        adap.Fill(sqltable)
        LoginForm.ProgressBar1.Maximum = sqltable.Rows.Count

        For Each trackingstatus As DataRow In sqltable.Rows
            branches = trackingstatus.Item("ID")
            LoginForm.Update()
            sqlconnect()
            sqlcom = New SqlServerCe.SqlCeCommand("SELECT * FROM TRACKINGSTATUS where ID = '" & trackingstatus.Item("ID") & "' ", sqlcon)
            Dim read As SqlServerCe.SqlCeDataReader = sqlcom.ExecuteReader
            If read.Read = True Then
                sqlcon.Close()
                LoginForm.ProgressBar1.Value += 1
                percent = (LoginForm.ProgressBar1.Value / LoginForm.ProgressBar1.Maximum) * 100
                LoginForm.loading.Text = percent.ToString("N2") & "%"
                sqlconnect()
                sqlcom = New SqlServerCe.SqlCeCommand("Update TRACKINGSTATUS set ID =@ID,TrackingStatus=@TrackingStatus where ID = '" & trackingstatus.Item("ID") & "'", sqlcon)
                'Username, Password, BranchID, FIRSTNAME, LASTNAME, DESIGNATION, Memo, I
                sqlcom.Parameters.AddWithValue("@ID", trackingstatus.Item("ID"))
                sqlcom.Parameters.AddWithValue("@TrackingStatus", trackingstatus.Item("TrackingStatus"))
                sqlcom.ExecuteNonQuery()
                sqlcon.Close()
            Else
                client = trackingstatus.Item("ID").ToString.Replace(" ", "")
                sqlcon.Close()
                LoginForm.ProgressBar1.Value += 1
                percent = (LoginForm.ProgressBar1.Value / LoginForm.ProgressBar1.Maximum) * 100
                LoginForm.loading.Text = percent.ToString("N2") & "%"
                sqlconnect()
                sqlcom = New SqlServerCe.SqlCeCommand("INSERT INTO TRACKINGSTATUS (ID,TrackingStatus) values (@ID,@TrackingStatus)", sqlcon)
                sqlcom.Parameters.AddWithValue("@ID", trackingstatus.Item("ID"))
                sqlcom.Parameters.AddWithValue("@TrackingStatus", trackingstatus.Item("TrackingStatus"))
                sqlcon.Close()
            End If
        Next
        LoginForm.ProgressBar1.Maximum = 0
        LoginForm.ProgressBar1.Value = 0
        LoginForm.loading.Text = ""
    End Sub
它以1乘1的方式获取数据,因为for-each语句。。一个接一个地获取数据需要一分钟甚至一个小时,因为我的SQL Server的每个表中都有数千条数据记录

我希望它能立即复制所有内容

是否有足够快的拷贝速度来减少我获取数据的等待时间D

===============================================================================

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using ErikEJ.SqlCe;



namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SqlCommand com = new SqlCommand();
            SqlConnection con = new SqlConnection("Data Source=192.168.0.97;Initial Catalog=SALESANDTRACKING;User ID=sa;Password=jrs@morethan50");



            // Getting source data
          com = new SqlCommand("SELECT * FROM AIRBILLS where DateofAirbill between '2017-08-01' and '2017-10-25'", con);
            con.Open();
            SqlDataReader rdr = com.ExecuteReader();

            // Initializing an SqlBulkCopy object
            SqlBulkCopy sbc = new SqlBulkCopy("Data Source=localhost;Initial Catalog=AIRBILLS;Integrated Security=True");


            // Copying data to destination
            sbc.ColumnMappings.Add("ID", "ID");
            sbc.ColumnMappings.Add("Sender", "AIRBILL");
            sbc.DestinationTableName = "Airbills";
            sbc.BulkCopyTimeout = 60;
            sbc.WriteToServer(rdr);
            // Closing connection and the others
            sbc.Close();
            rdr.Close();
            con.Close();






            MessageBox.Show("Database Copied");
        }
        private static void DoBulkCopy(bool keepNulls, IDataReader reader)
        {

            SqlCeBulkCopyOptions option = new SqlCeBulkCopyOptions();
            if (keepNulls)
            {
                options = options |= SqlCeBulkCopyOptions.KeepNulls;
            }
            using (SqlCeBulkCopy bc = new SqlCeBulkCopy(@"Data Source=C:\Users\REGIME\Desktop\WindowsFormsApplication1\Database1.sdf", options))
            {
                bc.DestinationTableName = "Airbills";
                bc.WriteToServer(reader);
            }


        }

    }


}
到目前为止,我更新了我的代码。。我可以使用
EricEJ.SqlCe
,但在我放入该名称空间并更改
connectionstring
后,发生了以下错误

Error   38  Ambiguity between 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.ColumnName' and 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.ColumnName'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  102 68  WindowsFormsApplication1
Error   41  Ambiguity between 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.ColumnName' and 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.ColumnName'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  114 162 WindowsFormsApplication1
Error   61  Ambiguity between 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.ColumnName' and 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.ColumnName'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  227 33  WindowsFormsApplication1
Error   39  Ambiguity between 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.HasDefault' and 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.HasDefault'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  111 52  WindowsFormsApplication1
Error   40  Ambiguity between 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.IsNullable' and 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.IsNullable'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  111 95  WindowsFormsApplication1
Error   59  Ambiguity between 'ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter.FieldCount' and 'ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter.FieldCount'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  215 59  WindowsFormsApplication1
Error   27  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopy.DestinationTableName' and 'ErikEJ.SqlCe.SqlCeBulkCopy.DestinationTableName'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\Form1.cs   67  20  WindowsFormsApplication1
Error   46  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationColumn' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationColumn'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  135 51  WindowsFormsApplication1
Error   52  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationColumn' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationColumn'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  174 96  WindowsFormsApplication1
Error   53  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationColumn' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationColumn'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  178 69  WindowsFormsApplication1
Error   54  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationOrdinal' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationOrdinal' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  189 37  WindowsFormsApplication1
Error   55  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationOrdinal' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationOrdinal' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  189 71  WindowsFormsApplication1
Error   56  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationOrdinal' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationOrdinal' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  191 72  WindowsFormsApplication1
Error   57  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationOrdinal' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.DestinationOrdinal' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  193 45  WindowsFormsApplication1
Error   45  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceColumn' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceColumn' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  134 53  WindowsFormsApplication1
Error   47  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceColumn' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceColumn' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  144 107 WindowsFormsApplication1
Error   48  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceOrdinal' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceOrdinal'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  150 37  WindowsFormsApplication1
Error   49  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceOrdinal' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceOrdinal'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  150 66  WindowsFormsApplication1
Error   50  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceOrdinal' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceOrdinal'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  151 99  WindowsFormsApplication1
Error   51  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceOrdinal' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SourceOrdinal'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  153 47  WindowsFormsApplication1
Error   25  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyOptions.KeepNulls' and 'ErikEJ.SqlCe.SqlCeBulkCopyOptions.KeepNulls'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\Form1.cs   63  59  WindowsFormsApplication1
Error   33  Ambiguity between 'ErikEJ.SqlCe.SqlCeBulkCopyOptions.KeepNulls' and 'ErikEJ.SqlCe.SqlCeBulkCopyOptions.KeepNulls'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  82  89  WindowsFormsApplication1
Error   36  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.GetDataForTable(System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe.SqlCeTransaction, string)' and 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.GetDataForTable(System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe.SqlCeTransaction, string)'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  87  34  WindowsFormsApplication1
Error   43  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.GetDataForTable(System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe.SqlCeTransaction, string)' and 'ErikEJ.SqlCe.DestinationTableDefaultMetadata.GetDataForTable(System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe.SqlCeTransaction, string)'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  130 49  WindowsFormsApplication1
Error   60  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter.FieldName(int)' and 'ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter.FieldName(int)'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  217 35  WindowsFormsApplication1
Error   28  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopy.WriteToServer(System.Data.IDataReader)' and 'ErikEJ.SqlCe.SqlCeBulkCopy.WriteToServer(System.Data.IDataReader)'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\Form1.cs   68  17  WindowsFormsApplication1
Error   30  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SqlCeBulkCopyColumnMapping(int, int)' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SqlCeBulkCopyColumnMapping(int, int)'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  35  22  WindowsFormsApplication1
Error   31  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SqlCeBulkCopyColumnMapping(int, string)' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SqlCeBulkCopyColumnMapping(int, string)'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  45  22  WindowsFormsApplication1
Error   32  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SqlCeBulkCopyColumnMapping(string, int)' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SqlCeBulkCopyColumnMapping(string, int)'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  55  22  WindowsFormsApplication1
Error   29  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SqlCeBulkCopyColumnMapping(string, string)' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMapping.SqlCeBulkCopyColumnMapping(string, string)'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  25  22  WindowsFormsApplication1
Error   58  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMappingCollection.Create(System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe.SqlCeTransaction, ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter, ErikEJ.SqlCe.SqlCeBulkCopyOptions, string)' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMappingCollection.Create(System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe.SqlCeTransaction, ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter, ErikEJ.SqlCe.SqlCeBulkCopyOptions, string)'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  207 24  WindowsFormsApplication1
Error   37  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMappingCollection.GetSourceColumns(ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter)' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMappingCollection.GetSourceColumns(ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter)'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  97  33  WindowsFormsApplication1
Error   42  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMappingCollection.GetSourceColumns(ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter)' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMappingCollection.GetSourceColumns(ErikEJ.SqlCe.ISqlCeBulkCopyInsertAdapter)'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  129 37  WindowsFormsApplication1
Error   44  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMappingCollection.ToColumnNames(System.Collections.Generic.List<ErikEJ.SqlCe.DestinationTableDefaultMetadata>)' and 'ErikEJ.SqlCe.SqlCeBulkCopyColumnMappingCollection.ToColumnNames(System.Collections.Generic.List<ErikEJ.SqlCe.DestinationTableDefaultMetadata>)'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  130 35  WindowsFormsApplication1
Error   35  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyTableHelpers.IdentityOrdinal(System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe.SqlCeTransaction, string)' and 'ErikEJ.SqlCe.SqlCeBulkCopyTableHelpers.IdentityOrdinal(System.Data.SqlServerCe.SqlCeConnection, System.Data.SqlServerCe.SqlCeTransaction, string)'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  85  29  WindowsFormsApplication1
Error   34  The call is ambiguous between the following methods or properties: 'ErikEJ.SqlCe.SqlCeBulkCopyTableHelpers.IsCopyOption(ErikEJ.SqlCe.SqlCeBulkCopyOptions, ErikEJ.SqlCe.SqlCeBulkCopyOptions)' and 'ErikEJ.SqlCe.SqlCeBulkCopyTableHelpers.IsCopyOption(ErikEJ.SqlCe.SqlCeBulkCopyOptions, ErikEJ.SqlCe.SqlCeBulkCopyOptions)'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  82  29  WindowsFormsApplication1
Error   23  The name 'options' does not exist in the current context    C:\Users\REGIME\Desktop\WindowsFormsApplication1\Form1.cs   63  17  WindowsFormsApplication1
Error   24  The name 'options' does not exist in the current context    C:\Users\REGIME\Desktop\WindowsFormsApplication1\Form1.cs   63  27  WindowsFormsApplication1
Error   26  The name 'options' does not exist in the current context    C:\Users\REGIME\Desktop\WindowsFormsApplication1\Form1.cs   65  136 WindowsFormsApplication1
Error   3   The namespace 'ErikEJ.SqlCe' already contains a definition for 'AdoNetUtils'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\AdoNetUtils.cs 6   24  WindowsFormsApplication1
Error   4   The namespace 'ErikEJ.SqlCe' already contains a definition for 'AdoNetUtils'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\AdoNetUtils(2).cs   6   24  WindowsFormsApplication1
Error   11  The namespace 'ErikEJ.SqlCe' already contains a definition for 'DestinationTableDefaultMetadata'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\DestinationTableDefaultMetadata(2).cs   9   24  WindowsFormsApplication1
Error   12  The namespace 'ErikEJ.SqlCe' already contains a definition for 'DestinationTableDefaultMetadata'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\DestinationTableDefaultMetadata.cs 9   24  WindowsFormsApplication1
Error   5   The namespace 'ErikEJ.SqlCe' already contains a definition for 'ISqlCeBulkCopyInsertAdapter'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\ISqlCeBulkCopyInsertAdapter.cs 6   24  WindowsFormsApplication1
Error   6   The namespace 'ErikEJ.SqlCe' already contains a definition for 'ISqlCeBulkCopyInsertAdapter'    C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\ISqlCeBulkCopyInsertAdapter.cs  6   24  WindowsFormsApplication1
Error   21  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopy'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeBulkCopy.cs    19  18  WindowsFormsApplication1
Error   22  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopy'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopy.cs   19  18  WindowsFormsApplication1
Error   13  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyColumnMapping' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyColumnMapping.cs  9   25  WindowsFormsApplication1
Error   14  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyColumnMapping' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeBulkCopyColumnMapping.cs   9   25  WindowsFormsApplication1
Error   19  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyColumnMappingCollection'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyMappingCollection.cs  12  25  WindowsFormsApplication1
Error   20  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyColumnMappingCollection'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeBulkCopyMappingCollection(2).cs    12  25  WindowsFormsApplication1
Error   7   The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyDataReaderAdapter' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyDataReaderAdapter.cs  6   27  WindowsFormsApplication1
Error   8   The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyDataReaderAdapter' C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeBulkCopyDataReaderAdapter(2).cs    6   27  WindowsFormsApplication1
Error   1   The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyDataTableAdapter'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeBulkCopyDataTableAdapter(2).cs 6   20  WindowsFormsApplication1
Error   2   The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyDataTableAdapter'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyDataTableAdapter.cs   6   20  WindowsFormsApplication1
Error   17  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyOptions'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeBulkCopyOptions.cs 10  17  WindowsFormsApplication1
Error   18  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyOptions'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeBulkCopyOptions(2).cs  10  17  WindowsFormsApplication1
Error   15  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyTableHelpers'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\SqlCeBulkCopyTableHelpers.cs   9   27  WindowsFormsApplication1
Error   16  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeBulkCopyTableHelpers'  C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeBulkCopyTableHelpers.cs    9   27  WindowsFormsApplication1
Error   9   The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeRowsCopiedEventArgs'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeRowsCopiedEventArgs(2).cs  9   18  WindowsFormsApplication1
Error   10  The namespace 'ErikEJ.SqlCe' already contains a definition for 'SqlCeRowsCopiedEventArgs'   C:\Users\REGIME\Desktop\WindowsFormsApplication1\EricJS\SqlCeBulkCopy-master\src\Backup\SqlCeRowsCopiedEventArgs.cs 9   18  WindowsFormsApplication1

我使用.NETFramework4客户端配置文件

===============================================================

The database file has been created by an earlier version of SQL Server Compact. Please upgrade using SqlCeEngine.Upgrade() method.

不要使用DataTable,它会产生大量不必要的开销,但可以通过SqlDataReader从SQLServer获取数据

然后,您可以使用我的SqlCeBulkCopy库快速插入SQL Compact数据库。(但可能需要您处理空表)

使用ErikEJ.SqlCe

private static void DoBulkCopy(bool keepNulls, IDataReader reader)
{
    SqlCeBulkCopyOptions options = new SqlCeBulkCopyOptions();
    if (keepNulls)
    {
        options = options |= SqlCeBulkCopyOptions.KeepNulls;
    }
    using (SqlCeBulkCopy bc = new SqlCeBulkCopy(connectionString, options))
    {
        bc.DestinationTableName = "tblDoctor";
        bc.WriteToServer(reader);
    }
}

更多信息和示例应用程序请点击此处:

@marc\s感谢您编辑我问题的标题:您只想使用代码或ssms工具进行DDo就可以了you@Vivek我想让它用代码来做。你能给我举个例子吗?@ErikEJ为什么不起作用?我是否必须将我的SqlServerCe引用到4.0才能与EricEJ.SqlCe40匹配?因为我使用的是引用SqlServerCe 3.5而不是4.0?你能给我举个SqlCeBulkCopy的例子吗?我不知道如何使用它。很抱歉问这个问题,我如何才能在我的项目中添加你的“ErikEJ.SqlCeBulkCopy”?我刚下载了你的图书馆。。您的库是否可以在vb.net中使用而不是在c#中使用?如果您使用SQL CE 4.0,它是一个Nuget包,否则只需将项目添加到您的解决方案中,是的,您可以从VBS中调用它。如果包含代码,则必须删除Nuget包!?谢谢你回答我的所有问题我的问题是用ErikEJ.SqlCe.dll解决的我认为这是你的nugget包的旧版本它真的对我有很大帮助:D顺便说一下,我下载了你最新的nugget包2.1.6.15,但当它安装在by project中时,版本说它是2.1.6.14,错误不断出现,所以我想可能会有其他解决方案,即您的旧软件包SqlCeBulkCopy.2.1.6.12.zip再次感谢。。。我现在可以在不到一秒钟的时间内将数据从服务器存储到本地:D
private static void DoBulkCopy(bool keepNulls, IDataReader reader)
{
    SqlCeBulkCopyOptions options = new SqlCeBulkCopyOptions();
    if (keepNulls)
    {
        options = options |= SqlCeBulkCopyOptions.KeepNulls;
    }
    using (SqlCeBulkCopy bc = new SqlCeBulkCopy(connectionString, options))
    {
        bc.DestinationTableName = "tblDoctor";
        bc.WriteToServer(reader);
    }
}