当我尝试调用Fill()时,会记录以下错误,并且我的powershell会话崩溃。
事件类型:错误事件源:.NET运行时描述:.NET运行时 版本2.0.50727.3625 - 尝试读取或写入受保护的内存。 这通常表明其他内存已损坏。
我的脚本如下:
$asm = [System.Reflection.Assembly]::LoadWithPartialName(“Oracle.DataAccess”)
$userName = "foo"
$tnsDbName = "bar"
$pass = "foobar"
$connectionString = "User Id=$userName;Password=$pass;Data Source=$tnsDbName"
$q = @"
SELECT * FROM blah WHERE blar = '5848752'
"@
$cstr = $connectionString
$conn= New-Object Oracle.DataAccess.Client.OracleConnection($cstr)
$conn.open()
$adapter = New-Object Oracle.DataAccess.Client.OracleDataAdapter($q,$conn)
$dataset = New-Object Data.DataSet
$adapter.Fill($dataset)
$dataset.Tables[0]
如果我只是通过“$ adapter =”行跑来查看崩溃前的事情状态:
PS H:\> $asm.GetName()
Version Name
------- ----
10.2.0.100 Oracle.DataAccess
PS H:\> $adapter.SelectCommand.Connection | fl ClientID,ConnectionTimeout,ServerVersion,State
ClientId :
ConnectionTimeout : 15
ServerVersion : 10.2.0.4.0
State : Open
我愿意接受建议!在我的计算机上可能已经对ODP.NET进行了更新,但是使用它的所有其他应用程序(一些简单的winform应用程序)和Toad for Oracle都可以正常运行。
答案 0 :(得分:0)