我已经安装了 SQLite 的 64 位 ODBC 驱动程序,下载自这一页。我在 Windows 7 上运行 PowerShell 版本 2。
在 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”个参数调用“Open”时发生异常:“‘System.Transactions.Diagnostics.DiagnosticTrace’ 的类型初始化程序引发了异常。”
位于行:1 字符:8
$x.打开<<<<()
CategoryInfo:未指定:(:) [],MethodInvocationException
完全合格错误标识:DotNetMethodException
基本上,我的问题是:
- 这种组合(64 位 SQLite ODBC 和 PowerShell)对任何人都有效吗?
- 你知道我做错什么了吗?