Я установил 64-битный драйвер ODBC для SQLite, скачанный с эта страница. Я использую PowerShell версии 2 в Windows 7.
В конфигурации ODBC я создаю системный DSN с именем LoveBoat
, указывающий на действительный файл. У меня нет «настоящих» приложений, чтобы проверить, работает ли соединение ODBC, но простая программа на C # с приведенным ниже кодом работает. Я хочу, чтобы сценарий PowerShell тоже работал с ним.
Приведенная ниже тестовая программа на C # запускается и распечатывает ожидаемые данные:
using System.Data.Odbc;
using System.Data;
using System;
public class program
{
public static void Main(string[] args)
{
OdbcConnection conn = new OdbcConnection(@"DSN=LoveBoat");
conn.Open();
OdbcCommand comm = new OdbcCommand();
comm.CommandText= "SELECT Name From Myfavoritetable";
comm.Connection = conn;
OdbcDataReader myReader = comm.ExecuteReader(CommandBehavior.CloseConnection);
while(myReader.Read())
{
Console.WriteLine(myReader[0]);
}
}
}
Однако следующий сценарий PowerShell:
$x = new-object System.Data.Odbc.OdbcConnection("DSN=LoveBoat")
$x.open()
Выдает следующую ошибку:
Исключение, вызывающее «Открыть» с аргументом (-ами) «0»: «Инициализатор типа для 'System.Transactions.Diagnostics.DiagnosticTrace' вызвал исключение».
В строке: 1 символ: 8
$ x.Open <<<< ()
CategoryInfo: NotSpecified: (:) [], MethodInvocationException
FullyQualifiedErrorId: DotNetMethodException
В основном, мои вопросы: