Не удалось найти тип или имя пространства имен 'OleDbConnection' (отсутствует директива using или ссылка на сборку?) - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь разобрать формат Excel в json. Ниже приведен проверенный код, который вызывает проблему с «OleDbConnection».Я пробовал разные решения, но, похоже, ничего не работает.

using System;
using System.Linq;
using System.Data;
using System.Data.OleDb;
using System.Data.Common;
using Newtonsoft.Json;
using System.IO;

namespace ResumeParsing
{
    class Program
    {
        static void Main(string[] args)
        {
            var pathToExcel = @"C:\Users\Admin\Desktop\resumeexcelformat.xlsx";
            var sheetName = "Sheet1";
            var destinationPath = @"C:\path\to\save\json\file.json";

            //Use this connection string if you have Office 2007+ drivers installed and 
            //your data is saved in a .xlsx file
            var connectionString = $@"
                Provider=Microsoft.ACE.OLEDB.12.0;
                Data Source={pathToExcel};
                Extended Properties=""Excel 12.0 Xml;HDR=YES""
            ";

            //Creating and opening a data connection to the Excel sheet 
            using (var conn = new OleDbConnection(connectionString))
            {
                conn.Open();

                var cmd = conn.CreateCommand();
                cmd.CommandText = $"SELECT * FROM [{sheetName}$]";

                using (var rdr = cmd.ExecuteReader())
                {

                    //LINQ query - when executed will create anonymous objects for each row
                    var query = rdr.Cast<DbDataRecord>().Select(row => new {
                        Prefix = row[1],
                        FirstName = row[2],
                        MiddleName = row[3],
                        Surname = row[4]
                    });

                    //Generates JSON from the LINQ query
                    var json = JsonConvert.SerializeObject(query);

                    //Write the file to the destination path    
                    File.WriteAllText(destinationPath, json);
                }
            }
        }
    }


}

Через Google я пытался добавить ссылку, но в моем проекте нет опции сборки, и в ней показывается "нет элементов", чтобы проверить, является ли система.данные проверены или нет. См. также изображение. enter image description here Может кто-нибудь сказать, пожалуйста, как решить эту ошибку?

1 Ответ

0 голосов
/ 02 мая 2019

Важно добавить System.Data.dll, потому что это нужно OleDb.Но в вашем примере кода вы уже делаете это.

Пожалуйста, попробуйте удалить пакет nuget, очистить проект, закрыть VS, переустановить пакет и выполнить перестройку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...