0

ぐるぐる回ってこの記事を読んだ

C#プログラムでSQL Serverのインストールパスを取得するには?

これはまさにVB.NETで必要なものですが、このコードをVB.NETコードに変換するのは苦手です。ですから、どんな助けでも大歓迎です。ありがとうございました。

注: SQL Server 2005 と Visual Basic 2008 を使用しています。

4

4 に答える 4

2

質問のタイトルは元々SQLServerのインストールパスの取得に関するものでしたが、コード変換の問題に関するものだと感じました(解決策はすでに存在していましたが、適切な言語ではありませんでした)。

しかし、元のコードのメソッドはかなり鈍いと思いました。

Evanは、既存のソリューションの実行可能な翻訳であると私が想定しているものを提供しました。VIEW SERVER STATEただし、この特定のタスクを実行するためのはるかに簡単な方法は、既に接続しているインスタンスのインストールパスを見つける必要があるだけで、レジストリを読み取ることができるユーザーにも権限があると想定して、これを発行することです。プログラムからのDMVsys.dm_os_loaded_modulesに対する単純なクエリ:

SELECT name 
  FROM sys.dm_os_loaded_modules
  WHERE name LIKE '%sqlservr.exe';

これにより、次のようなものが得られます。

C:\ Program Files \ Microsoft SQL Server \ MSSQL11.SQL2012 \ MSSQL \ Binn \ sqlservr.exe

何を求めているかに応じて、解析を行う必要があります(たとえば、で停止しますMSSQLBinn?)が、これは、レジストリやIMHOにある他のメソッドを読み取るよりもはるかに簡単です。

于 2013-03-23T15:08:11.580 に答える
1

Convert .NET Freeという非常に優れた (オフライン) ツールを使用しています。

www.fishcodelib.comからです

最新リリースへの直接リンクは次のとおりです (19/04/14 時点)サイズ: 2.06MB、ファイル: Zip:

[直接リンク]

これが役に立つことを願っています;)

PS このソフトウェアには.NET Framework 4.5が必要です。

于 2013-03-26T02:25:25.627 に答える
1

コードコンバーターを使用しました...変更する必要があるのは基本的なことだけです..

Using sqlServerKey As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Microsoft SQL Server")
    For Each subKeyName As String In sqlServerKey.GetSubKeyNames()
        If subKeyName.StartsWith("MSSQL.") Then
            Using instanceKey As RegistryKey = sqlServerKey.OpenSubKey(subKeyName)
                Dim instanceName As String = instanceKey.GetValue("").ToString()

                If instanceName = "MSSQLSERVER" Then
                    'say
                    Dim path__1 As String = instanceKey.OpenSubKey("Setup").GetValue("SQLBinRoot").ToString()
                    path__1 = Path.Combine(path__1, "sqlserver.exe")
                    Return path__1
                End If
            End Using
        End If
    Next
End Using

C# に関する簡単な記事を読んだだけなら、文字列の宣言が異なっていることに気付くでしょうforeachfor each

より一般的な違いについては、こちらを参照してください。

于 2013-03-23T14:49:06.027 に答える
0

これはほとんど失敗しません!:) 幸運を

http://www.developerfusion.com/tools/convert/csharp-to-vb/

于 2013-03-24T00:13:53.850 に答える