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

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

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

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

VB.NET

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

Q&A

解決済

2回答

14613閲覧

vb.netでSQL Serverへの接続

lob

総合スコア7

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

VB.NET

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

0グッド

1クリップ

投稿2016/11/16 05:00

編集2016/11/17 00:08

Visual Studio 2013でSQL server 2012に接続したいのですがエラーが出て接続できません。
webアプリケーションのログイン照会やデータベースの登録、更新などの機能を実装する予定なのですが、
そもそもデータベースサーバーにアクセスできずにいます。
環境ですが、Visual Studio 2013のOSがWindows7 SQL Server 2012 のOSがWindows8です。

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

SQL Serverへの接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。 サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および、 SQL Serverがリモート接続を許可するように構成されていることを確認してください。 (provider: Named Pipes Provider, error: 40 - SQL Serverへの接続を開けませんでした)

###該当のソースコード

ASP.NET

1' 接続文字列を生成する 2 Dim stConnectionString As String = String.Empty 3 stConnectionString &= "Data Source = サーバー名;" 4 stConnectionString &= "Initial Catalog = データベース名;" 5 'SQLサーバー認証を利用 6 stConnectionString &= "User ID = ユーザー名"; 7 stConnectionString &= "Password = パスワード"; 8 ' windows認証を利用 9 'stConnectionString &= "Integrated Security = SSPI;" 10 11 12 13 ' SqlConnection の新しいインスタンスを生成する (接続文字列を指定) 14 Dim cSqlConnection As New System.Data.SqlClient.SqlConnection(stConnectionString) 15 16 ' データベース接続を開く 17 cSqlConnection.Open() 18 19 20 ' データベース接続を閉じる 21 cSqlConnection.Close() 22 cSqlConnection.Dispose()

###試したこと
ソースコードだけでなくサーバーエクスプローラーからの接続の追加でも同じエラーが出ました。
SQL Server側のリモート接続の設定、ファイアウォールの受信の規則にポートを追加、
両PCのファイアウォール,ウイルスソフトの無効化、インスタンス名の確認
を行った結果エラーは変わりませんでした。

なにか原因に心当たりやもしかしたらなどございましたら、曖昧でもかまいませんのでご意見いただきたいです。

~追記メモ~
ソースコードにTCP/IP通信を記述し、実行時のエラー
SQL Serverへの接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。
サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および、
SQL Serverがリモート接続を許可するように構成されていることを確認してください。
(provider: Named TCP プロバイダー, error: 0 - 要求した名前は有効ですが、要求された種類のデータは見つかりませんでした)

ソースコードのID,パスワードの末尾の忘れていた「;」を修正(エラーは治らず)

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

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

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

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

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

guest

回答2

0

SQL Server が Express 版ということはないですか? Express 版をデフォルトでインストールすると名前付きインスタンスになるので、そのまま何も設定を変えなければリモート接続には SQL Server Browser が必要になります。

【追伸】

今気がつきましたが、

provider: Named Pipes

ということは、そもそもリモート接続の設定ができてないのでは?

投稿2016/11/16 05:24

編集2016/11/16 05:27
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

lob

2016/11/16 05:29

回答ありがとうございます。 バージョンを確認してきましたが、Standard Editionでした。 自分の情報の記入が足りませんでしたね。すいません。
退会済みユーザー

退会済みユーザー

2016/11/16 05:50

以下のような話もありますのでご参考に紹介しておきます。 https://social.msdn.microsoft.com/Forums/ja-JP/fe9913e6-d04e-48b5-b756-69a2a0ea70ff/sqlserver?forum=sqlserverja 質問者さんの場合、接続文字列で使用するプロトコルを指定してないと思いますが、レジストリの ProtocolOrder で指定されている順番(デフォルトで、共有メモリ ⇒ TCP ⇒ 名前付きパイプ)で接続をトライしていって、共有メモリ、TCP では接続できず、最後の名前付きパイプをトライしてもやはり接続できず、そこでエラーになったような気がします。
lob

2016/11/16 06:12

さまざまな回答ありがとうございます。また、返信が遅くなり申し訳ございません。 リモート接続の設定を見直し、Visual Studio側とSQL Server側のコマンドプロンプトのsqlcmdコマンドで接続を試みた結果、やはり上記と同じエラーが出ました。 同じ端末側でも同じエラーが発生するのでSQL Server側の設定がおかしいのではと思うので リモート接続などの設定や紹介していただいたURLを参考にもう一度設定を見直してきます。 自分の中でかなり前進できました。また、原因に近づけた気がします。 回答ありがとうございました。
guest

0

自己解決

二つのPC間の接続方法が違っていて通信できていませんでした。
Visual Studio側がブリッジ接続、SQL Server側がNAT接続だったからでした。
NAT接続にあわせたところうまくいきました

投稿2016/11/17 01:16

lob

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問