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

MSDE2000にIPアドレスで接続できない

1
投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-11-23 00:58
コード:
namespace SampleConnectDB
{
	/// <summary>
	/// ConnectDatabase の概要の説明です。
	/// </summary>
	public class ConnectDatabase
	{

		private string strConn ;
		private string strUserID = string.Empty;
		private string strPassWord = string.Empty;
		private string strDataBase = string.Empty;
		private string strServerAddress = string.Empty;
		private int strTimeOut = 0;
		private string strError = null;
		private SqlConnection myConnection;
		private SqlCommand myCmd;
		private SqlDataAdapter da;
		private DataTable dt;

		public ConnectDatabase()
		{
			// 
			// TODO: コンストラクタ ロジックをここに追加してください。
			//
		}
		

		/// <summary>
		/// Template
		/// </summary>
		public void hoge()
		{
		}

		/// <summary>
		/// ログインユーザ
		/// </summary>
		public string UserID
		{
			set { strUserID = value;}
		}

		/// <summary>
		/// パスワード
		/// </summary>
		public string PassWord
		{
			set { strPassWord = value;}
		}

		/// <summary>
		/// 接続データベース名
		/// </summary>
		public string DataBase
		{
			set { strDataBase = value;}
		}

		/// <summary>
		/// サーバアドレス
		/// </summary>
		public string ServerAddress
		{
			set { strServerAddress = value;}
		}

		/// <summary>
		/// 接続待ち時間
		/// </summary>
		public int TimeOut
		{
			set { strTimeOut = value;}
		}

		/// <summary>
		/// DBを開く
		/// </summary>
		public DataTable ExecSearchSQL(string strSQL)
		{
			try
			{
				strConn = "user id=" + strUserID + ";"
					+ "password=" + strPassWord + ";"
					+ "initial catalog=" + strDataBase + ";"
					+ "data source=" + strServerAddress + ";"
					+ "Connect Timeout=" + strTimeOut.ToString() + ";"
					;
				myConnection = new SqlConnection(strConn);
				myConnection.Open();
				myCmd = new SqlCommand(strSQL,myConnection);
				da = new SqlDataAdapter();
				da.SelectCommand = myCmd;
				DataSet ds = new DataSet();
				da.Fill(ds);
				dt = ds.Tables[0];
				myConnection.Close();
			}
			catch(ArgumentException e)
			{
				strError = e.ToString();
			}
			catch(Exception e2)
			{
				strError = e2.ToString();
			}
			return dt;
		}
	}
}





上記のようなサンプルプログラムを作成しました。
そこでServerAddressにIPアドレスを設定すると正しく接続が
できません。
#192.168.1.3と入力しました。Pingは通ります
そこでIPアドレスの代わりにコンピュータ名を設定したところ
問題なく接続ができます。

エラーが発生するのは
 myConnection.Open();
のところで、エラーの内容は

Message "SQL サーバーが存在しないか、アクセスが拒否されました。" string

というメッセージになります。
SVRNETCN.exeを実行したときにTCP/IPは有効になっているのは
確認してあります。


何が原因か見当が付かないのですが、何かアドバイスを
いただけないでしょうか?
ぼんじぃ
ベテラン
会議室デビュー日: 2004/05/21
投稿数: 70
投稿日時: 2004-11-23 09:54
MSDEをインストールするときにリモート接続を受け付けないような設定にしていないでしょうか?
デフォルトではローカル接続しか受け付けないようになっていたと思います。
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-11-23 11:22
msoです。

SVRNETCN.exeでTCP/IPが有効になっていたのですが、
”名前付きパイプ”も有効にしたら大丈夫になりました。


結果として、大丈夫なのですが名前付きパイプがイマイチ理解できません。
http://e-words.jp/w/E5908DE5898DE4BB98E3818DE38391E382A4E38397.html
で探してみたのですが、まだ理解できないのですがTCP/IPとはまったく
別物なんですよね?
1

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