2017-10-10 91 views
2

我想做一個excel文件的映射,但在一定的方式列Excel文件的映射。 如實施例我有一個EXEL文件,其中(Excel文件的)第2列必須被引用的有SQL數據庫的第1列。如何做到使用C#

這是我使用的Formenter image description here

我已經有了SQL搜索做我只是想知道我可以在組合框中把名字列在Excel文件。

這是我使用搜索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數據全面且易於控制。

對於固體和簡單的答案是指:

Microsoft Interop: Excel Column Names

當使用建議的代碼確保您以下引用添加到您的代碼:

using Microsoft.Office.Interop.Excel; 

記住所提供的答案有將列名放入一個通用的字符串列表中。

之後,你必須將其綁定到組合框:

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

你的意思是什麼「在此處添加代碼來填充從數據庫數據集DS」 –

+0

所以我們說你的Excel文件有3列A,B,C,在COMBOX你想看 A,B,C(C#的網絡表單)?請確認。 –

+0

是的,這就是我需要 –