@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

MSDE2000にC#から接続できない

投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-07-29 00:23
msoです。

環境:
VisualStudio2002(C#)
MSDE2000

MSDE2000をインストールして、OSQLから接続をしてデータを
登録、検索などの一連の処理をすることが出来る状態まで
セットアップをしました。

何も知らないなりにココまでは出来たのですが、
ADO.NETで接続しようとしているのですがうまくいきません。

そこで最小限のコードを作成して、テストをしてみたのですが
OPENした後にエラーが出力されます。

作成したテストソース(メソッド部分のみ)
コード:
 
/// <summary>
/// DB接続テストメソッド
/// </summary>
public void TestHoge()
{

	string strConn = "user id=userid;password=*****;initial catalog=hogeDB;data source=192.168.1.3;Connect Timeout=30";


	SqlConnection myConnection = new SqlConnection();
	myConnection.ConnectionString = strConn;
	try
	{
		myConnection.Open();
	}
	catch(ArgumentException e)
	{
		Console.WriteLine("error");
		string strTest = e.ToString();
	}
	catch(Exception e2)
	{
		Console.WriteLine("error2");
		string strTest2 = e2.ToString();
	}
	myConnection.Close();
}




上記のソースをビルドして、実行をすると
error2の箇所でエラーになります。
実行後、少し時間が経ってからエラーになるので、
接続待ちしているのだと思いますが、原因がはっきりと
わかりません。


何かアドバイスなどをいただけないでしょうか?

なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-07-29 00:32
引用:

msoさんの書き込み (2004-07-29 00:23) より:
上記のソースをビルドして、実行をすると
error2の箇所でエラーになります。
実行後、少し時間が経ってからエラーになるので、
接続待ちしているのだと思いますが、原因がはっきりと
わかりません。


ど、どんなエラーが出るんでしょうか?
vincent
大ベテラン
会議室デビュー日: 2004/07/09
投稿数: 142
投稿日時: 2004-07-29 00:39
とりあえず、StackTraceを取得して具体的にどんな例外が
発生しているか確認してみては?

ToString()では得られる情報が少なすぎますよ。
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-07-29 09:26
msoです。

すいません、エラーの内容を取得していたのに
提示するのを忘れていました。
自宅PCで実行しているので帰ったらすぐに
書き込みたいと思います。

たしか、DBが存在しないか、権限が無いという内容だったと
思います。
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2004-07-29 12:53
data sourceがIPアドレスになっているのが気になるのですが、
もしかしてリモート接続しようとしてますか?
この場合、MSDEのインストール時の設定でネットワークからの
接続を許すようにしていないと接続できなかったはず。
標準インストールだと、セキュリティの観点からPortが
閉じているはずです。

#data sourceにIPを記述した時点で自分自身であっても
 ネットワーク経由の接続、とみなされる可能性は、、、
 あるのかな?

mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-07-29 13:41
msoです。

引用:

小野@どっとねっとふぁんさんの書き込み (2004-07-29 12:53) より:
data sourceがIPアドレスになっているのが気になるのですが、
もしかしてリモート接続しようとしてますか?
この場合、MSDEのインストール時の設定でネットワークからの
接続を許すようにしていないと接続できなかったはず。
標準インストールだと、セキュリティの観点からPortが
閉じているはずです。

#data sourceにIPを記述した時点で自分自身であっても
 ネットワーク経由の接続、とみなされる可能性は、、、
 あるのかな?




ネットワークからも接続できるように考えていました。
家に帰ったらすぐにdata sourceにlocalhostで接続をしてみます。


mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-07-30 00:20
msoです。

DataSourceをIPアドレスからlocalhostに変えてみたのですが、
相変わらずエラーが出たままです。

そこでStackTraceを取得してみました。
これです↓

e2.StackTrace
at System.Data.SqlClient.SqlConnection.Open()
at SampleConnectDB.ConnectDatabase.TestHoge() in c:\documents and settings\hoge\my documents\visual studio projects\sampleconnectdb\connectdatabase.cs:line 47

line 47
ってのは
myConnection.Open();
の部分です。

MSDE2000の設定でネットワーク経由で接続させるところの
設定をしないままインストールしたのでそこが影響している
気がしています。

INIファイルの設定を変更すれば大丈夫だと思っていたのですが、
なかなか見つからずどこでMSDE2000の設定を変更すればいいのか
現在調査中です。
#ひょっとしたら再インストールしないとダメでしょうか??

ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2004-07-30 04:04
data source=localhost;
ではなく、
data source=(local);
ではだめですか?
あるいはインスタンス名もある場合はそれもつけなきゃだめです。

ちなみにネットワーク設定の変更は、svrnetcn.exe(SQL Serverネットワークユーティリティ)でいけるはずです。

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