2012-05-08 9 views
0

iamがasp.mvs web-applicationを実行しています。 は既にホストされており、DBも同じホスティングプロバイダによって提供されています。 私はDBからデータを転送するために与えられたconnection stringを(すでに3日間)使用しようとしています。 ここに私の方法です私のですconnection string. あなたは見てみていくつかの潜在的な間違いを見てくださいできますか? 私はこの単純なことを行うことができないので、非常にannoing。外部SQLサーバーへの接続文字列のエラーを検索しようとしています

/// <summary> 
    /// Gets connection string of Database 
    /// </summary> 
    /// <returns>connection string of type const</returns> 
    public static string GetConnectionStringOfDatabase() 
    { 
     try 
     { 
      string cnc = @"data source=OnlineVertrag.mssql.somee.com;workstation  id=OnlineVertrag.mssql.somee.com;packet size=4096;user id="xxx";pwd="xxx";persist security info=False;initial catalog=OnlineVertrag"; 
      return cnc; 
     } 
     catch (Exception ex) 
     { 
      bool rethrow = ExceptionHelper.Handle(ex, "Business Logic"); 
      if (rethrow) 
      { 
       throw; 
      } 
     } 
     return null; 
    } 




public bool CheckIfUserIsActive(string username) 
     { 
      SqlConnection connection = new SqlConnection(SQLDataHelper.GetConnectionStringOfDatabase()); 

      try 
      { 
       connection.Open(); 
       SqlCommand cmd = new SqlCommand(); 
       cmd.Connection = connection; 
       cmd.CommandType = System.Data.CommandType.Text; 
       cmd.CommandText = @"SELECT IsActive " 
           + "FROM Users " 
           + "WHERE Username = @Username"; 
       cmd.Parameters.Add(new SqlParameter("@Username", UserName)); 

       SqlDataReader reader = cmd.ExecuteReader(); 

       bool isActiveValueFromDataBase = false; 

       if (reader.HasRows) 
       { 
        while (reader.Read()) 
        { 
         isActiveValueFromDataBase = Convert.ToBoolean(reader["IsActive"]); 
         if (isActiveValueFromDataBase == true) 
         { 
          return true; 
         } 
         return false; 
        } 
       } 

       reader.Close(); 
      } 
+0

投稿コードでは接続文字列を返すだけなので、別の場所で接続を開いているとします。サーバーのアドレス以外にポート番号が必要なのでしょうか?サーバーのIPを使って接続しようとしましたか?いくつかの例については、www.connectionstrings.comを参照してください。 – CMPerez

+0

iamが必要なすべてのメソッドで接続文字列を呼び出しています。 –

+0

接続しようとすると、どのようなエラーメッセージが表示されますか?あなたのホスティングプロバイダが指定するサーバーの接続情報、またはあなたが持っているプロバイダは?エラーメッセージにはよく問題があり、ホスティングプロバイダには、名前付きインスタンスからポート番号への特定の非デフォルト設定が含まれることがあります。 – matthewnreid

答えて

1

ミスアイク#1:一般公開のフォーラムにログイン情報を掲載しています。

真剣に - このページを見て、質問の編集履歴を見たすべての人がデータベースにログインできるようになりました。パスワードはできるだけ早く変更する必要があります。

ミスケート#2:接続文字列をコードに格納する。あなたがちょうど見たように、パスワードの変更は予期しないものになることがあります。最も簡単な方法:web.configファイルに保存し、それらにアクセスするためにConfigurationManager.ConnectionStringsを使用します。

http://pietschsoft.com/post/2005/12/28/ASPNET-20-How-to-get-a-specific-ConnectionString-from-the-WebConfig-by-name.aspx

可能な間違い#3:データソース= OnlineVertrag.mssql.somee.com」試してみてください;ユーザーID = xxxは、 pwd = xxx;初期カタログ= OnlineVertrag」。多分 "ワークステーション"と "ID"の間のスペースが問題です。

+0

ありがとう!他の間違いはどうですか?) –

+0

はすでに自分のパスワードを変更しました! –

0

David Tischlerが言ったこと。

接続用の接続文字列を使用できるSQL Management Studioまたは別の対話型SQLアプリケーションがありますか。少なくともSQL Server 2008のMicrosoft SQL Server Management Studioでは、接続文字列を「追加の接続パラメータ」セクションに貼り付けることができます。私はこれが以前のバージョンにあるとは思わない。

DBに接続しようとするページを作成し、ページの一部としてex.Messageを表示するのはどうですか?おそらくこれは、SQLクライアントライブラリが間違っていると考えるものを表示します。

関連する問題