我正在运行一个简单的测试应用程序,它打开OLEDB连接,检索单个值,然后关闭。已编译的(控制台)应用程序工作正常,但从IDE运行它会导致静默关闭(如果它是winforms应用程序)或vshost32.exe崩溃(如果它是控制台应用程序)。
devenv在Windows x64上为VB 2010 Express
,但我将解决方案上的配置管理器设置为“Debug” - “x86”。
Imports System.Data.OleDb
Module Module1
Sub Main()
Dim server As String = "xxxxx"
Dim username As String = "xxxxx"
Dim password As String = "xxxxx"
Dim schema As String = "xxxxx"
Dim connectionString As String = String.Format( _
"Provider=SLXOLEDB.1;Data Source={0};Initial Catalog={3};User ID={1};Password={2};Extended Properties=LOG=ON;Connect Timeout=5;", _
server, username, password, schema)
Dim con As OleDbConnection = New OleDbConnection(connectionString)
con.Open()
Dim query As String = "SELECT USERID FROM USERSECURITY WHERE USERCODE=?"
Dim cmd As New OleDbCommand(query, con)
cmd.Parameters.AddWithValue("usercode", username)
Dim userid As String = cmd.ExecuteScalar.ToString
Console.WriteLine("UserID is {0}", userid)
cmd.Parameters.Clear()
con.Close()
con = Nothing
End Sub
End Module
答案 0 :(得分:0)
你可以尝试禁用vshost来查看会发生什么。
我也会查看“输出”窗口,也许你在那里有一些有价值的信息。
答案 1 :(得分:0)
解决方案很简单。
SalesLogix OLEDB提供程序工作正常,但只有在使用管理员权限启动IDE时才能进行调试。
使用procmon进行一些挖掘可能会告诉我们正在访问哪些密钥/文件,但在我们的例子中,我可以使用提升的IDE进行调试。