71518


開発環境Visual Studio2017  
言語c#

### 実現したいこと

注文情報が入ったCSVファイルを読み込みレイアウト編集をして出力したい

  1. 注文情報CSVファイルを読み込みとオラクルのデータから商品データ読み込み

  2. 上記の二つを使いレイアウト編集  
*補足：読み取り時JANコード（15列目にデータがあります。）編集時JANコードは無し（代わりにカラーとサイズが４列目、７列目に存在します）

  3. DataGridViewに出力

１の注文情報CSVファイルから読み込んだデータにはJANコードがあるのですが、カラー、サイズのデータはなく注文情報CSVファイルのレイアウト編集時にJANコードではなくカラー、サイズの列を作りたいと考えています。そのためにoracleからJANコードに紐づいた二つ（カラー、サイズ）を取得したい  
接続するところまでは下記のURLを参考にしてやってみました。

[C# Oracleに接続してselectするサンプル](https://itsakura.com/csharp-oracle)

### 解決したい問題

２の編集するために注文情報CSVファイル（JANコード）とoracle（カラー、サイズ）のデータを紐づけてコード内の作成した列に投入するところです。（カラムAカラムBの列）

例（読み込み時レイアウト）

[code]

    NO,名前,,,,,,JANコード
    A1,B2,,,,,,,jan1
    A2,B2,,,,,,jan2
    
[/code]

例（変更後レイアウト）  
*例をシンプルにするために４項目ですが、後ろに挿入ではなく前後関係は完全にバラバラです。
[code]

    NO,名前,,カラー,,サイズ,,,,,
    A1,B1,,c1,,d1,,,,,
    A2,B2,,c2,,d2,,,,,
    
[/code]

レイアウト作成コード

[code]

    DataTable table = new DataTable("ResultTable"); // 結果用テーブル作成
    table.Columns.Add("からむ1", typeof(String));
    table.Columns.Add("からむ2", typeof(String));
    table.Columns.Add("からむ3", typeof(String));
    table.Columns.Add("カラムA", typeof(String));
    table.Columns.Add("からむ4", typeof(String));
    table.Columns.Add("からむ5", typeof(String));
    table.Columns.Add("カラムB", typeof(String));
    
    DataTable csvtable = ReadCSV('CSVデータファイルパス'); // CSVデータ取得
    
    foreach(DataRow csvrow in csvtable.Rows) // コピー処理
    {
        DataRow dtrow = table.NewRow();
        dtrow["からむ1"] = csvrow["カラム1"];
        dtrow["からむ2"] = csvrow["カラム2"];
        dtrow["からむ3"] = csvrow["カラム3"];
      //dtrow["カラムA"] = "JANコードからカラー";
        dtrow["からむ4"] = csvrow["カラム4"];
        dtrow["からむ5"] = csvrow["カラム5"];
      //dtrow["カラムB"] = "JANコードからサイズ";
        table.Rows.Add(dtrow);
    }
    
[/code]


CC BY-SA 4.0
2020-10-25T03:17:05.920
71491
2020-10-26T09:44:18.263
2020-10-26T09:44:18.263
42419
42419
question
c# oracle datagridview
C＃Oracleからデータを取得し挿入


CSVとOracleと、それぞれ別のDataTableに読み込んでおき、[LINQ to
DataSet](https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/linq-
to-
dataset)を用いて結合するのはどうでしょうか。[結合結果からDataTableを構築する](https://docs.microsoft.com/ja-
jp/dotnet/framework/data/adonet/creating-a-datatable-from-a-query-linq-to-
dataset)ことが可能ですので、最終目標のDataGridViewに表示することもできるはずです。


CC BY-SA 4.0
2020-10-26T07:07:48.050
71518
2020-10-26T07:07:48.050
4236
71491
answer