Я использую c # (Visual Studio 2008), чтобы попытаться получить доступ к бизнес-логике в таблице Excel.
У меня есть следующий класс .. (не стесняйтесь критиковать, если я делаю это неправильно - я обычно Java-разработчик - это мое первое приложение на c #.)
public class SpreadSheetClass
{
// apologies for any typo's code written in place, not copied from an IDE...
//
public DataTable DoIt()
{
DataTable result;
String sConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MySpreadsheet.xls;Extended Properties=Excel 8.0;";
OleDbConnection connection = new OleDbConnection(sConnection);
try
{
connection.Open();
OleDbCommand oleDbcCommand = new OleDbCommand("SELECT * FROM SELECTION", connection);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
dataAdapter.SelectCommand = oleDbcCommand;
result = new DataTable();
dataAdapter.Fill(result);
}
finally
{
connection.Close();
}
return result;
}
}
Я добавил электронную таблицу в проект, используя Add -> Existing Item ->, затем выбрал файл .xls. Затем я отредактировал свойства файла, указав, что это встроенный ресурс, и всегда копировал его в выходной каталог.
Я могу получить доступ к электронной таблице изнутри проекта.
Однако я хочу запустить метод DoIt извне проекта, например, из тестового проекта, я получаю следующее исключение:
"Тестовый метод TestProject1.UnitTest1.TestMethod1 вызвал исключение: System.Data.OleDb.OleDbException: ядру базы данных Microsoft Jet не удалось найти объект« ВЫБОР ». Убедитесь, что объект существует, и что вы записали его имя и путь назови правильно .. "
Я уверен, что моя проблема связана с вызовом класса, который обращается к ресурсу из другого проекта.
Помощь!