2016-10-07 1 views
1

別のクラス(Function.cs)の別のメソッド(fillDT())の一部としてクラス(Utility.cs)のメソッド(GetConnectionString())を使用しています。ConnectionStringプロパティが初期化されていません。それを修正するには?

internal class Utility 
{ 
    internal static string GetConnectionString() 
    { 
     //Util-2 Assume failure. 
     string returnValue = null; 

     //Util-3 Look for the name in the connectionStrings section. 
     ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["Assignment_new.Properties.Settings.connString"]; 

     //If found, return the connection string. 
     if (settings != null) 
      returnValue = settings.ConnectionString; 

     return returnValue; 
    } 
} 

class Functions 
{ 
    public static DataTable fillDT(string sqlstatement) //Fills the datatable with data from sqlstatement 
    { 
     string connstr = Assignment_new.Utility.GetConnectionString(); 
     SqlConnection con = new SqlConnection(connstr); 
     con.Open(); 
     SqlDataAdapter sda = new SqlDataAdapter(sqlstatement, con); 
     DataTable dt = new DataTable(); 
     sda.Fill(dt); 
     return dt; 
    } 

私は(@「SQL文」)Functions.fillDTを呼び出すたびに、エラーは、接続文字列が初期化されていないと言って飛び出します。

+0

問題を伝えるために接続文字列を表示してください。 –

答えて

1

接続文字列を保存するには、適切なconfigファイルを使用してください。この質問にWinFormsというタグが付いているので、接続文字列はWeb.ConfigにないApp.Configファイル内にあるはずです。これは、Webアプリケーションの場合は反対側を行う必要があります、Web.Configファイルの最上位ディレクトリに保管してください。

また、デスクトップアプリケーションでApp.Configファイルを使用して設定を保存している場合、実行可能ファイルが保存されている出力ディレクトリ(通常は実行可能ファイルと同じ名前、つまり<EXNAme>.exe.config)にファイルがコピーされていることを確認してください。 。それ以外の場合、アプリケーションが実行されても、アプリケーションは見つからないでしょう。

+0

App.configで文字列を検索し、 "Assignment_new.Properties.Settings.connString"を見つけた文字列に置き換えました。 – Raika

0

接続文字列がnullに設定されていることを確認しました。 string.IsNullOrEmpty()がヌルでないかどうかを確認してください。また、ブレークポイントを設定し、app.configに表示される接続文字列の値がコード内で実際に取得されているかどうかをチェックする必要があります。

+0

私はちょうどチェックして、その設定がnullであることを示しています。 – Raika

関連する問題