OleDB выбирает несколько CSV с первой строкой в ​​качестве имен полей в C # - PullRequest
2 голосов
/ 12 апреля 2011

Так что мой код выглядит сейчас так, что все хорошо и хорошо

String q = "SELECT * FROM "+"test.csv";
        try
        {
            OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\;Extended Properties=\"Text;HDR=No;FMT=Delimited\"");
            OleDbDataAdapter da = new OleDbDataAdapter();
            DataSet ds = new DataSet();
            OleDbCommand cd = new OleDbCommand(q, cn);
            cn.Open();
            da.SelectCommand = cd;
            ds.Clear();
            da.Fill(ds, "CSV");
            dataGridView1.DataSource = ds.Tables[0];
            cn.Close();
            }
        catch (Exception ex)
        {
            MessageBox.Show("There was an issue: " + ex.Message);
        }

Однако я хотел бы взять первую строку в моем CSV и использовать ее в качестве имен полей, чтобы я могсделать что-то вроде

"select a.ID, a.SOMETHING_ELSE from test.csv a"
where the CSV looks something like
ID,SOMETHING_ELSE,DONT_WANT_THIS
1,blah,I don't want to see this

Тем не менее, из того, что я вижу, во всех примерах в Интернете ничего не показано, кроме select *, и я бы хотел, чтобы моя сетка данных показывала заголовки как выбранные имена полей, а неF1, F2 ....

Это где-нибудь реализовано?

1 Ответ

1 голос
/ 12 апреля 2011

Измените строку подключения на HDR = Да (вместо HDR = Нет):

OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\;Extended Properties=\"Text;HDR=Yes;FMT=Delimited\"");

Для OleDB свойство HDR в строке подключения указывает, содержит ли первая строка имена столбцов.

...