ホームページ >バックエンド開発 >C#.Net チュートリアル >DataTableのデータをデータベースに一括挿入するC#サンプルコードの詳細説明

DataTableのデータをデータベースに一括挿入するC#サンプルコードの詳細説明

黄舟
黄舟オリジナル
2017-03-25 11:57:261999ブラウズ

この記事では、DataTableのデータを一度データライブラリに挿入するC#方法を中心に紹介していますので、興味のある方は学んでみてください。 現在の実際の状況は次のとおりです:

顧客はタイム レコーダー マシンを所有しており、すべての従業員の出勤情報はタイム カード マシンの Access データベースに保存されています。現在、顧客は新しい管理システムを導入しています。 Access データベースのタイムカード データは SQL Server データベースに同期されました。比較的長い期間が経過したため、400,000 件を超えるデータが蓄積されました。

ソフトウェアの機能:

Access データベース ファイルを選択し、ターゲット SQL Server データベースの IP アドレスを入力して、同期を開始します。

実装方法:

1. まず、AccessデータベースからインポートするデータをDataTableに格納します

設定ファイル内のデータベース接続

文字列は、Accessデータベースのデータを読み取るメソッドをカプセル化します

<connectionStrings>
  <add name="oleConStr" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="/>
  
  <add name="sqlConStr" connectionString ="server=tiantiankaixing;database=新建数据库;trusted_connection=sspi"/>
 </connectionStrings>
DataTable にターゲットの Access データベースを読み込みます

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();
          }
        }
      }
    }

2. SQL Server データを一括挿入するメソッドをカプセル化します

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

3. DataTableToSQlServer() メソッドを呼び出して、DataTable にすべてのデータを挿入します

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
          {
            

          }
        }


      }

    }

データベースへのコピー

添付: SqlBulkCopy の簡単な使用法

string localCon = "server=tiantiankaixing;database=Test;trusted_connection=sspi";
Entity.DataTableToSQLServer(dt, localCon);

以上がDataTableのデータをデータベースに一括挿入するC#サンプルコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。