Попытка заменить код C#, имеющий oledbadaptor, Microsoft.Jet.OLEDB.4.0

Ниже приведен источник из старой среды, и мне нужно развернуть его на новом Windows Server 2014.

Сначала я думал о развертывании кода "как есть", но позже я подумал о вариантах поддержки Microsoft.Jet.oledb в ближайшие годы и, следовательно, решил изменить код так, чтобы я просто манипулировал (или изменял) только настройками соединения, а затем писал ДАННЫЕ как в текущем коде.

Например, есть "dsTextFile" (набор данных), который показан ниже источника, который широко используется во всем источнике, ссылаясь на имя столбца.

То, что я пробовал: я на самом деле пытался просто прочитать его как файл CSV с помощью потокового ридера, но мне нужно внести множество изменений, чтобы получить правильные данные на основе имени столбца или даже выполнить дальнейший анализ.

Большое спасибо.

private bool LoadTextFile(string textFilePath, out string errorInfo) {
    errorInfo = String.Empty;

    try {
        string textFileFolder = (new System.IO.FileInfo(textFilePath)).DirectoryName;
        string textConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
                                        "Data Source=" + textFileFolder + ";" +
                                        "Extended Properties=\"text;HDR=No;FMT=Fixed\";";
        OleDbConnection textConnection = new OleDbConnection(textConnectionString);

        textConnection.Open();

        textFilePath = (new System.IO.FileInfo(textFilePath)).Name;
        string selectCommand = "select * from " + textFilePath;

        OleDbCommand textOpenCommand = new OleDbCommand(selectCommand);
        textOpenCommand.Connection = textConnection;

        OleDbDataAdapter textDataAdapter = new OleDbDataAdapter(textOpenCommand);
        Console.WriteLine("Trying to set textDataAdapter");

        int rows = textDataAdapter.Fill(dsTextFile); //This is where error is coming.

        Console.WriteLine("detail rows being filled");

        textConnection.Close();
        textConnection.Dispose();

        return true;
    }
    catch (Exception ex_load_text_file) {
        Console.WriteLine("error in loadTextFile is " + ex_load_text_file.Message.ToString());
        return false;
    }
}

0 ответов

Другие вопросы по тегам