- ベストアンサー
VB.netでSQLserverに接続できない問題
- VB2008expressでSQLserver2000に接続できず、タイムオーバーになる問題が発生しています。
- 接続方法を確認したが、基本的な理解不足によるものかもしれない。
- Button1の記述では接続できるが、Button2では接続できない。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 情報が少し足りないのでほぼ全て推測になりますが、接続文字列の問題ではなく、ネットワークライブラリのプロトコルの問題ということはありませんか? button1の記述はADOによるODBC接続で、button2の記述はADO.NET(ADOとは別物です)によるDataProvider接続をされていますが、それぞれ接続のプロトコルは何にされていますか? 例えば、ODBCは「名前付きパイプ」で接続しているが、DataProviderは「TCP/IP」とかだとサーバーで「TCP/IP」が無効になっていると後者は接続できません。 まずは、「サーバー ネットワーク ユーティリティ」(だったかな?)の「有効になっているプロトコル」で有効・無効や優先順位を確認されてみてはどうでしょうか?
その他の回答 (1)
- Siegrune
- ベストアンサー率35% (316/895)
>VB2008express で SQLserver2000に接続しようとしています 以下に引用している話があやしいと思いますけど。 --- 引用 --- 注意 ADO.NET 2.0 では、SQL Server 2000 以前のバージョンについて、共有メモリに対する Asynchronous コマンドをサポートしていません。 ただし、共有メモリの代わりに強制的に TCP を使用できます。 これには、接続文字列でサーバー名の前に tcp: を指定するか、または localhost を使用します。 --- 以上 --- http://msdn.microsoft.com/ja-jp/library/vstudio/system.data.sqlclient.aspx より。ADO.NET 2.0はVB2005以降に対応するVersion。
お礼
回答ありがとうございます サーバー名の前につけてみたところ、エラーメッセージの内容が 少し変わったものの接続できないことには変わりありませんでした。 しかしながらアドバイスを参考にもう少し調べてみたいと思います ありがとうございました。 ちなみにOSは XP SP3 です
お礼
早速のご回答ありがとうございます 急ぎの回答を設定したのに関わらず 明日確認して 再度書き込みをしたいと思います。 取り急ぎ御礼まで。ありがとうございました。
補足
質問者です。いろいろと情報不足で申し訳ありません。 「サーバー ネットワーク ユーティリティ」を確認したところ 名前付きパイプ、TCP/IPの 順で有効になっていました。また 「クライアント ネットワーク ユーティリティ」を確認したところ TCP/IP、名前付きパイプの順で有効になっていました。 質問内容の説明が前後しますが VB2003でADO.NETを使いSQLserver2000に接続しているプログラムがあり、 そのプログラムを一旦別のPC(1)でVB2008expressへ自動変換し DBの接続を含めてテストをしようとしています。 別のPC(1)でVB2008expでEXEファイルを作成し実行したのですが DBの接続のところでエラー VB2003のプログラムが使えている(接続できている)PCで VB2008expのEXEファイルを実行したのですが同じくタイムアウトエラーになります 今回は そのデータベースの接続のところを抜き出しテストしているところです。 ファイヤーオールでのTCP/IPの設定(ポートの編集)も サーバーの設定と同じポート番号になっております VB2003で接続できているPCで、同じプログラムをVB2008expに自動変換したものを 実行しようとしたのですが接続ができなくなっている状況です 確認すべきところ 他にないでしょうか? 説明下手で申し訳ありませんが宜しくお願い致します。