c# Excel输入连接两列

本文关键字:两列 Excel 输入 连接 | 更新日期: 2023-09-27 18:03:17

我一直在努力寻找这个问题的答案。我正在使用Oledb将Excel电子表格导入c#。这工作得很好,但是在导入时,我希望将两个Excel列连接在一起,即连接它们。

这是我目前拥有的代码:

string PathConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source =" + textBox1.Text + ";Extended Properties='"Excel 12.0 XML;HDR=Yes;'";";
        OleDbConnection conn = new OleDbConnection(PathConn);
        OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select [ID], [Subject], [Catalog], [Last], [First Name], [Descr], [Mark] from[" + textBox2.Text + "$]", conn);
        DataTable dt = new DataTable();
        myDataAdapter.Fill(dt);
        dataGridView1.DataSource = dt;

上面的代码运行良好。我希望连接的两个列是Subject和Catalog,并将其命名为Module。主题是由三个字母和四个数字组成的字符串。是否有一种方法可以在select语句或替代方法中做到这一点?

提前感谢。

c# Excel输入连接两列

像这样更改您的OleDbAdapter查询:

OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select [ID], [Subject] + ' ' + [Catalog] AS [Module], [Last], [First Name], [Descr], [Mark] from[" + textBox2.Text + "$]", conn);

注意,[Subject] + ' ' + [Catalog] AS [Module]被组合成一个字符串,并放在Module别名下。

您可以在查询中"CONCAT":

https://msdn.microsoft.com/es-es/library/hh231515 (v = sql.120) . aspx

OleDbDataAdapter myDataAdapter = new OleDbDataAdapter("Select [ID], CONCAT( [Subject], [Catalog] ) AS subject_catalog, [Last], [First Name], [Descr], [Mark] from[" + textBox2.Text + "$]", conn);