Переменная источника OleDbConnection в C # - PullRequest
0 голосов
/ 25 апреля 2011

Как заменить D:\temp\test.xls на filePath в OleDbConnection выражении.

Я могу получить точно filePath (с OpenFileDialog, тогда я могу удобно расположить свой файл .xls, не более жестко запрограммированный), но когда я вставляю переменную filePath как Style2, она не работает. Как я могу это исправить ? Спасибо.

Style1

OleDbConnection dbConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;Extended Properties=""Excel 8.0;HDR=Yes;""");

Стиль2

OleDbConnection dbConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filePath;Extended Properties=""Excel 8.0;HDR=Yes;""");

[Обновлено] Некоторая часть моего кода, как этот,

DataTable fooData = new DataTable();

            OleDbConnection dbConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filePath;Extended Properties=""Excel 8.0;HDR=Yes;""");

            dbConnection.Open ();
            try
            {
                OleDbCommand dbCommand = new OleDbCommand("SELECT * FROM [maleSheet$]", dbConnection);
                OleDbDataReader dbReader = dbCommand.ExecuteReader();

                int RankIndex = dbReader.GetOrdinal("Rank");

                while (dbReader.Read())
                {
                    string rank = dbReader.GetValue(RankIndex).ToString();
                    ////....
                }
           }

Ошибка, как показано ниже в строке OleDbDataReader dbReader = dbCommand.ExecuteReader();

Необработанное исключение типа 'System.Data.OleDb.OleDbException' произошло в System.Data.dll

1 Ответ

3 голосов
/ 25 апреля 2011
OleDbConnection dbConnection = new OleDbConnection( String.Format( @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=Yes;""", filePath ) );
...