您的代码为我工作,因为它是。
我刚才添加一行到数据源分配的数据集中寻找后,我看到只是一个表是内部名称为“表”,所以我分配在DataGridView的数据成员:
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Table";
无论如何,如果我用过的 ';'分隔符,所有的值都在一列...用','逗号分隔符它工作正常。

形式的完整代码:CSV文件的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string FileName = @"C:\mydir\testcsv.csv";
OleDbConnection conn = new OleDbConnection
("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " +
Path.GetDirectoryName(FileName) +
"; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter
("SELECT * FROM " + Path.GetFileName(FileName), conn);
DataSet ds = new DataSet("Temp");
adapter.Fill(ds);
conn.Close();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Table";
}
}
}
内容:
abc,123
def,456
ijk,789
lmn,111213
对于分号分隔的文件,你需要添加一个ini文件的文件夹中包含csv文件。如何做到这一点正是在这里描述:
How to specify the delimiter when importing CSV files via OLEDB in C#
对于小数点分隔符号,你必须在
DecimalSymbol
指令添加到您的喷气ini文件。
请参阅MSDN(https://msdn.microsoft.com/en-us/library/ms709353(v=vs.85).aspx)记载
是否有任何异常情况发生?或只是网格空? –
@MichalHainc Grid empty – Marci
好吧,用你的一段代码创建一个应用程序......只需一秒钟。 –