【发布时间】:2020-06-24 08:53:42
【问题描述】:
所以我一直在开发一个应用程序,它可以打开您想要的任何 Excel 文件,并且可以将数据发送到您想要的任何 Microsoft Access 数据库。
但是我是 C# 的绝对新手,所以我一直被卡住了很多。无论如何,你们中的任何人都知道如何制作一个 ComboBox 下拉列表,您可以从中选择您想要查看的 Excel 表格并将其显示在 Gridview 中吗?
既然我在寻求帮助,还不如问我如何制作:发送到数据库按钮实际上将 Excel 工作表的数据发送到数据库?
这是应用程序目前的样子:
这是代码:
using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;
namespace Data_Importer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Buttons
private void button1_Click(object sender, EventArgs e) //button Browse 1
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.textBox1.Text = openFileDialog1.FileName;
}
}
private void button2_Click(object sender, EventArgs e) //button Run
{
string PathConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + textBox1.Text + ";Extended Properties=\"Excel 8.0;HDR=Yes;\";";
OleDbConnection conn = new OleDbConnection(PathConn);
var sqlQuery = "Select * from [Sheet1$]";
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(sqlQuery, conn);
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
dataGridView1.DataSource = dt;
}
private void button3_Click(object sender, EventArgs e) //button Browse 2
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.textBox2.Text = openFileDialog1.FileName;
}
}
}
}
【问题讨论】:
-
你卡在哪里了,你目前的问题是什么?也许这可以帮助你:stackoverflow.com/a/1165281/13687491
-
所以我希望能够单击组合框中的下拉菜单并选择我想要的 excel 文件的工作表。但是我不知道这个代码。
-
由于您使用 OleDb 来查询 Excel 工作表,这些答案应该会有所帮助:stackoverflow.com/questions/1164698/…
-
我没有使用将 Excel 位置硬编码到其中的代码,因为该应用程序的工作方式如下:您可以“浏览”并选择所需的任何 Excel 文件,它将显示路径textBox1 中的文件。并且“浏览”您想要的任何 Access 数据库,它将在 textBox2 中显示该路径。所以我需要一种方法让它动态地知道位置。希望这可以澄清有关我在寻找什么的任何问题。
-
首先我认为您应该编辑所有控件的名称。例如,对于按钮的名称应该像 btnDoSomething,这样你的代码会更容易理解。 (已生成事件的方法,尝试右键单击方法名称,选择重命名,然后编辑为 btnDoSomething_Click - 我使用的是 Visual Studio 2017)
标签: c# excel winforms combobox