2017-10-10 8 views
2

Excelファイルのマッピングを特定の方法で行いたいと考えました。 例として、Excelファイルの2番目の列(Excelファイルの)を参照する必要があるSQLデータベースの列が1つあります。cを使用してExcelファイルのマッピングを行う方法#

これは私が使用しているFormです:私はすでにSQL検索を行っている enter image description here

私はちょうど私がExcelファイル内の列のコンボボックスに名前を置くことができる方法を知りたいと思いました。

 using (OpenFileDialog ofd = new OpenFileDialog() { Filter = "Excel Workbook|*.xls", ValidateNames = true }) 
     { 
      DataSet result; 
      if (ofd.ShowDialog() == DialogResult.OK) 
      { 
       FileStream fs = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read); 
       IExcelDataReader reader = ExcelReaderFactory.CreateBinaryReader(fs); 
       reader.IsFirstRowAsColumnNames = true; 
       result = reader.AsDataSet(); 
       comboBox1.Items.Clear(); 
       foreach (DataTable dt in result.Tables) comboBox1.Items.Add(dt.TableName); 
       reader.Close(); 

       string ConecçãoDB = ConfigurationManager.ConnectionStrings["ConecçaoDB"].ConnectionString; 
       string Table = ConfigurationManager.AppSettings["table"]; 

       string ssqltable = Table; 

       string ssqlconnectionstring = ConecçãoDB; 

       filename = ofd.FileName; 
       MessageBox.Show(Convert.ToString(filename)); 
       var connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0;IMEX=1;HDR=NO;TypeGuessRows=0;ImportMixedTypes=Text\""; 
       var conexao = new System.Data.OleDb.OleDbConnection(connectionString); 
       var sql = "SELECT * FROM [" + comboBox1.SelectedText + "$]"; 
       string sclearsql = "delete from " + ssqltable; 
      } 
     } 
+0

あなたは具体的にどのような問題を抱えている - コンボボックス自体に実際のデータバインディングを?これを試してみるためにこれまでにどのような措置を講じていますか? – LightCC

+0

@LightCC私はコンボボックスにデータを追加することに固執しています –

答えて

1

私はあなたが必要なものを誤解として最新のコメントに基づいて私の答えを更新:

この

は、私は、Excelファイルを検索するために使用していたコードです。

Excelオブジェクトモデルにアクセスする必要があり、その後、Excelデータを完全かつ簡単に制御できます。ソリッドでシンプルな答えはを参照してください

は:

using Microsoft.Office.Interop.Excel; 

があって答えを覚えておいてください:Microsoft Interop: Excel Column Names

が示唆されたコードを使用している場合、あなたのコードに次の参照を追加してください列名を文字列の総称リストに入れます。

その後コンボボックスにバインドする必要があります。

BindingSource bs = new BindingSource(); 
bs.DataSource=columnNames ; 
comboBox1.DataSource = bs; 
+0

「あなたのコードを追加してデータベースからデータセットを取り込む」 –

+0

あなたのExcelファイルには、Comboxの3つのカラムA、B、Cがあります見たいと思っています A、B、C(On C#Webform)?ご確認ください。 –

+0

はい、必要なもの –

関連する問題