Detaillierte Erläuterung des C#-Beispielcodes zum gleichzeitigen Einfügen von Daten in DataTable in die Datenbank

黄舟
Freigeben: 2017-03-25 11:57:26
Original
1932 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die detaillierte Methode zum gleichzeitigen Einfügen der Daten in der DataTable vorgestellt. Interessierte können mehr darüber erfahren. Die aktuelle Ist-Situation ist wie folgt:

Der Kunde verfügt über einen Einstempelautomaten und alle Einstempelinformationen des Mitarbeiters werden jetzt in der Access-Datenbank des Einstempelautomaten gespeichert Da der Kunde ein neues Verwaltungssystem eingeführt hat, ist es notwendig, die Punch-In-Daten in der Access-Datenbank mit der SQL Server-Datenbank zu synchronisieren. Aufgrund der langen Zeit haben sich mehr als 400.000 Daten angesammelt.

Softwarefunktionen:

Wählen Sie die Access-Datenbankdatei aus, geben Sie die IP-Adresse der Ziel-SQL Server-Datenbank ein und starten Sie dann die Synchronisierung.

Implementierungsmethode:

1. Speichern Sie zunächst die Daten, die aus der Access-Datenbank importiert werden sollen, in der DataTable

Datenbankverbindung in der Konfigurationsdatei

Stringkapselt die Methode zum Einlesen von Access-Datenbankdaten in DataTable

<connectionStrings>
  <add name="oleConStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="/>
  
  <add name="sqlConStr" connectionString ="server=tiantiankaixing;database=新建数据库;trusted_connection=sspi"/>
 </connectionStrings>
Nach dem Login kopieren

Einlesen der Ziel-Access-Datenbank in Datatable

public static string OleConStr = ConfigurationManager.ConnectionStrings["oleConStr"].ConnectionString ;

 public static DataTable OleGetDataTable(string sql, string filePath)
    {
      
      string a = OleConStr + filePath;
      using (OleDbConnection conn = new OleDbConnection(a))
      {

        using (OleDbDataAdapter da = new OleDbDataAdapter(sql, conn))
        {
          try
          {
            conn.Open();
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
          }
          catch (Exception ex)
          {
            throw ex;
          }
          finally
          {
            if (conn.State == ConnectionState.Open)
              conn.Close();
          }
        }
      }
    }
Nach dem Login kopieren

2. Methode zum Kapseln der Stapeleinfügung von SQL Server-Daten

string sql = "select Id,Time from checkinout";
DataTable dt = AcHelper.OleGetDataTable(sql, @"F:\project\tiantiankaixing\admin.mdb");
Nach dem Login kopieren

3. Rufen Sie die DataTableToSQlServer()-Methode

public static void DataTableToSQLServer(DataTable dt,string connectString)
    {
      string connectionString = connectString;

      using (SqlConnection destinationConnection = new SqlConnection(connectionString))
      {
        destinationConnection.Open();

        using (SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConnection))
        {


          try
          {

            bulkCopy.DestinationTableName = "checkinout";//要插入的表的表名
            bulkCopy.BatchSize = dt.Rows.Count;
            bulkCopy.ColumnMappings.Add("ID", "ID");//映射字段名 DataTable列名 ,数据库 对应的列名 
            bulkCopy.ColumnMappings.Add("TIME", "TIME");
            
            bulkCopy.WriteToServer(dt);
            System.Windows.Forms.MessageBox.Show("插入成功");
          }
          catch (Exception ex)
          {
            Console.WriteLine(ex.Message);
          }
          finally
          {
            

          }
        }


      }

    }
Nach dem Login kopieren

auf, um alle Daten in der DataTable in die Datenbank einzufügen

string localCon = "server=tiantiankaixing;database=Test;trusted_connection=sspi";
Entity.DataTableToSQLServer(dt, localCon);
Nach dem Login kopieren
Anhang: Einfache Verwendung von SqlBulkCopy

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des C#-Beispielcodes zum gleichzeitigen Einfügen von Daten in DataTable in die Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage