C# WebApplication - System.Data.OleDb найден, но почти пустC#

Место общения программистов C#
Ответить
Anonymous
 C# WebApplication - System.Data.OleDb найден, но почти пуст

Сообщение Anonymous »

В настоящее время я пытаюсь прочитать файл Excel с помощью OleDB.
Это код:

Код: Выделить всё

using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Text;

namespace WebApplication1.My_Logic.Worker
{
public class ExcelLoader
{
private string GetConnectionString()
{
Dictionary props = new Dictionary();

props["Provider"] = "Microsoft.ACE.OLEDB.12.0;";
props["Extended Properties"] = "Excel 12.0 XML";
props["Data Source"] = "C:\\MyExcel.xlsx";

StringBuilder sb = new StringBuilder();

foreach (KeyValuePair prop in props)
{
sb.Append(prop.Key);
sb.Append('=');
sb.Append(prop.Value);
sb.Append(';');
}

return sb.ToString();
}

private DataSet ReadExcelFile()
{
DataSet ds = new DataSet();
string connectionString = GetConnectionString();
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;

// Get all Sheets in Excel File
DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

// Loop through all Sheets to get data
foreach (DataRow dr in dtSheet.Rows)
{
string sheetName = dr["TABLE_NAME"].ToString();

if (!sheetName.EndsWith("$"))
continue;

// Get all rows from the Sheet
cmd.CommandText = "SELECT * FROM [" + sheetName + "]";

DataTable dt = new DataTable();
dt.TableName = sheetName;

OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);

ds.Tables.Add(dt);
}

cmd = null;
conn.Close();
}

return ds;
}
}
}

Код: Выделить всё

System.Data.OleDb
выделен серым цветом (не используется), и невозможно найти следующие классы:

Код: Выделить всё

OleDbCommand
OleDbConnection
OleDbSchemaGuid
OleDbDataAdapter
Когда я смотрю на System.Data.OleDb, Visual Studio отображает только два класса:

Код: Выделить всё

System.Data.OleDb.OleDbPermission
System.Data.OleDb.OleDbPermissionAttribute
Повсюду, что я читал в Интернете, единственным ответом было добавление с помощью System.Data.OleDb, но он у меня есть, и Visual Studio, кажется, знает об этом.
Это недавно созданный проект API ASP.NET Core 2.1 из Visual Studio 2017.

Подробнее здесь: https://stackoverflow.com/questions/527 ... arly-empty
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»