您的代碼爲我工作,因爲它是。
我剛纔添加一行到數據源分配的數據集中尋找後,我看到只是一個表是內部名稱爲「表」,所以我分配在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
好吧,用你的一段代碼創建一個應用程序......只需一秒鐘。 –