質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

3回答

5301閲覧

VBのSQL認証のconnectionStringをWindows認証での接続に変更したい

TrainRain

総合スコア20

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2018/11/29 02:58

編集2018/11/29 04:10

こんにちは。

前提・実現したいこと

Windows10を使ってVisual Studo 2017でVBでコンソールアプリケーションのプロジェクトを作っています。
SQL認証でつながっている下記のconnectionStringをWindows認証での接続に変更したいです。
現在、SSMSで「localhost\SQLEXPRESS」にWindows認証でアクセスできます。
VBのコードからは接続できていません。
App.configは存在しないので、コードで書く方法を知りたいです。

connectionStringの書き方を教えてください。

現在のconnectionStringは、

VB

1Server=localhost\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=False;User ID=sa;Password=local123;Connect Timeout=5;

となっています。

発生している問題・エラーメッセージ

connectionStringの書き方がわからない。

該当のソースコード

VB

1'// DBオープン 2 Public Function funcDBOpen() As Boolean 3 4 Dim stConnectionString As String = String.Empty 5 6 stConnectionString &= "Server=" & pDBInstance & ";" 7 stConnectionString &= "Initial Catalog=" & pDBName & ";" 8 stConnectionString &= "Integrated Security=False;" 9 stConnectionString &= "User ID=" & pDBUser & ";" 10 stConnectionString &= "Password=" & pDBPass & ";" 11 stConnectionString &= "Connect Timeout=5;" 12 13 If cSqlConnection.State = ConnectionState.Closed Then 14 Try 15 cSqlConnection.ConnectionString = stConnectionString 16 cSqlConnection.Open() 17 funcDBOpen = True 18 Catch ex As Exception 19 funcDBOpen = False 20 MessageBox.Show(ex.Message) 21 End Try 22 Else 23 funcDBOpen = True 24 End If 25 26 End Function

試したこと

Windows認証ではUser ID, Passwordを使わないので、下記2行をコメントアウトしてみました。
すると「ユーザー''はログインできませんでした」とエラーになります。

VB

1 'stConnectionString &= "User ID=" & pDBUser & ";" 2 'stConnectionString &= "Password=" & pDBPass & ";"

補足情報(FW/ツールのバージョンなど)

Intel Pentium(R) CPU 4415 Y 1.60GHz RAM 8GB Windows10Pro 64bit 1803 17134.345 Microsoft Visual Studio Community 2017 Version 15.8.5 VisualStudio.15.Release/15.8.5+28010.2036 Microsoft .NET Framework Version 4.7.03056 インストールされているバージョン:Community

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

文字列を組み立てるのは骨なので、SqlConnectionStringBuilder を使ってみては?
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.sqlclient.sqlconnectionstringbuilder?view=netframework-4.7.2

投稿2018/11/29 04:38

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TrainRain

2018/11/29 04:51

情報ありがとうございます。おっしゃるとおり、文字列を組み立てるのは大変です。ただ今回の課題は、文字列の内容そのものにあって、組み立て方は現時点ではあまり問題になってないです。参考にします。ありがとうございます。
guest

0

connectionStringの書き方を教えてください。

前のスレッド(URL 下記)で教えて、解決済みになってます。

https://teratail.com/questions/159720

投稿2018/11/29 03:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TrainRain

2018/11/29 04:03

Visual BasicのプロジェクトにはApp.configがないので、おなじ書き方をできません。 コードで書く方法を知りたいです。
退会済みユーザー

退会済みユーザー

2018/11/29 04:49

VB.NET でも C# でも接続文字列は同じなので、C# で使った接続文字列で接続できたのなら、VB.NET でも全く同じ接続文字列 で接続できます。
退会済みユーザー

退会済みユーザー

2018/11/29 04:50

app.config は、C# と同様に VB.NET でも利用できるはずですが?
guest

0

ベストアンサー

User IDPassword 部分をコメントアウトするだけではなく、Integrated SecurityTrueにする必要があると思います。

vb

1 Dim stConnectionString As String = String.Empty 2 3 stConnectionString &= "Server=" & pDBInstance & ";" 4 stConnectionString &= "Initial Catalog=" & pDBName & ";" 5 stConnectionString &= "Integrated Security=True;" 6 stConnectionString &= "Connect Timeout=5;"

投稿2018/11/29 04:18

alg

総合スコア2019

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TrainRain

2018/11/29 04:25

ありがとうございます。できたっぽいです。検証します。
TrainRain

2018/11/29 04:48

できました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問