- PR -

データベースに繋がらない

投稿者投稿内容
MUCC
会議室デビュー日: 2005/01/27
投稿数: 10
投稿日時: 2005-01-27 16:03
開発環境 : OS : Win 2000 Pro
     : PROGRAM : C# .net
     : DATABASE: SQLSarver 7.0
.net で、社内開発を始めたのですたが、開発マシン以外のマシンにプログラムを入れるとサーバにアクセスできません。
開発用マシンでは繋がるので、間違ってはいないと思うのですが・・・。

↓ソース↓
//SQLを外部ファイルに従って開く。
//引数 : SqlConnection conn : 呼出側で使うSqlConnection
//   : string filename : 外部ファイル名
//戻り値 : なし
public void SQLOpen(SqlConnection conn ,string filename)
{
  //データベースに接続(SQL Sarbear)
  System.IO.StreamReader sr;
  try
  {
    sr = new System.IO.StreamReader
      (Environment.CurrentDirectory + "\" + filename,
      System.Text.Encoding.GetEncoding("shift-jis"));
  }
  catch
  {
    MessageBox.Show("ファイルの読み込みに失敗しました。");
    return;
  }

  //内容をすべて読み込む
  string s = sr.ReadToEnd();

  conn.ConnectionString = s;

  //↓ここで、エラーをキャッチしている。
  try
  {
   conn.Open();
  }
  catch
  {
    MessageBox.Show("サーバの接続に失敗しました。\n"
      + conn.ConnectionString);
  }
}

↓外部ファイルの中身↓
server=master;user id=sa;initial catalog=test;

なお、データベースにパスワードは掛かってません。

[ メッセージ編集済み 編集者: MUCC 編集日時 2005-01-27 16:06 ]

[ メッセージ編集済み 編集者: MUCC 編集日時 2005-01-27 16:07 ]
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-01-27 16:10
引用:

サーバにアクセスできません。



どうつながらないのですか?
メッセージは?

引用:

  catch
  {
    MessageBox.Show("サーバの接続に失敗しました。n"
      + conn.ConnectionString);
  }


これでは、せっかくの情報を捨てています。
ためしに、ここで例外を拾うのをやめてみてください。
問題解決のヒントが表示されます。

_________________
たつごろー
codeseek
こみゅぷらす
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2005-01-27 16:10
今日は。

エラーの内容がサーバへの接続エラーになっているならば、
プログラムではなく、ネットワーク環境やサーバのバージョンだと思いますよ 
そちらを調べてみては如何かと。
MUCC
会議室デビュー日: 2005/01/27
投稿数: 10
投稿日時: 2005-01-27 16:35
返信有り難うございます。
しかし、

>>たつごろーさん
開発用以外のクライアントにはデバッカーが入っていません。
又、入れることも許可されていません。
ので、エラーメッセージは「ハンドルされていない例外が・・・」しか出ません。

>>NAOさん
VB 6.0環境で作った、他のプログラムは正常に動いています。
ので、ネットワークは問題ないと思われます。
説明不足でした。すいません。

デバッカー入れるしかないのでしょうか?
NAO
ぬし
会議室デビュー日: 2001/10/24
投稿数: 1256
お住まい・勤務地: 神奈川のはずれから東京の下町
投稿日時: 2005-01-27 16:42
今日は

>開発用クライアント
今回問題になったプログラムは動く
他のVB6.0で作った物も動く
SQLサーバにもつながる

>それ以外
今回問題になったプログラムが動かない→SQLサーバにつながらない
他のVB6.0で作った物も動く→って事はランタイムとかの問題じゃ無い

と言う事を考えればSQLサーバの認証関係か、ネットワークかそのパソコンのOSの設定
とかしか考えられません。

他のパソコンと言うのは1台じゃないと思いますが、
全部で同じ症状なんですか?
パソコンによって違うならばパソコンの設定ですし、
全部で同じならばネットワークあるいはSQLサーバで制限しているかのどちらかだと思いますよ。
未記入
常連さん
会議室デビュー日: 2004/11/30
投稿数: 21
投稿日時: 2005-01-27 16:48
邪道かもしれませんが、
引用:

  catch
  {
    MessageBox.Show("サーバの接続に失敗しました。n"
      + conn.ConnectionString);
  }



  catch(Exception e)
  {
//    MessageBox.Show("サーバの接続に失敗しました。n"
      + conn.ConnectionString);
MessageBox.Show(e.ToString());
  }

に変えて試されては如何?
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-01-27 16:52
引用:

エラーメッセージは「ハンドルされていない例外が・・・」しか出ません。


ならば、
引用:

catch
  {


ここで捨ててしまっている例外についての情報ですが、取得するよう変更して、画面に表示するなり、Traceに出すなりしてはいかが?

以下にサンプルがあります。

C# 言語の仕様
8.10 try ステートメント
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/csspec/html/vclrfcsharpspec_8_10.asp


_________________
たつごろー http://www.codeseek.net
MCSE MCSD.NET、MCDBA、MCSA、MCAD
Oracle Master Platinum 9i、Oracle Master Linux+

[ メッセージ編集済み 編集者: たつごろー 編集日時 2005-01-27 16:53 ]
MUCC
会議室デビュー日: 2005/01/27
投稿数: 10
投稿日時: 2005-01-27 16:52
テストしたクライアントは、部屋内の全5台中2台です。(+開発用クライアント)
テストしたクライアントは両方とも、 OS : Win 2000 Pro です。
で、症状は同じ。
設定は、同じ時期に購入されたもので、専門の会社に頼んだものだそうです。(私は入社前でしたが・・・)

>他のVB6.0で作った物も動く→って事はランタイムとかの問題じゃ無い

これも説明不足でした。上のもデータベースプログラムです。
なので、ネットワークは無事って言いたかったのです。すいませんでした。

>>たつごろーさん
レスを打っている間にレスをもらった用で・・・。
有り難うございます。取りあえず試してみます。
結果はおって、投稿させていただきます。

[ メッセージ編集済み 編集者: MUCC 編集日時 2005-01-27 16:55 ]

スキルアップ/キャリアアップ(JOB@IT)