2017-03-20 18 views
0

私はASP.Net & SQL Serverへの新たなんだと次のコードを持っている:私は次のエラーが表示されたプロジェクトを実行するとASP.Net DB接続の問題

protected void btnShowData_Click(object sender, EventArgs e) 
     { 
      string connectionString; 
      SqlConnection cnn; 

      connectionString = @"Data Source=DESKTOP-RV7DDL4;Initial Catalog=Demodb 
       ;User ID=DESKTOP-RV7DDL4\dbname;Password=test123"; 

      cnn = new SqlConnection(connectionString); 

      SqlCommand command; 
      SqlDataReader dataReader; 
      String sql, Output = ""; 

      sql = "Select TutorialID, TutorialName from demotb"; 
      command = new SqlCommand(sql, cnn); 

      dataReader = command.ExecuteReader(); 

      while (dataReader.Read()) 
      { 
       Output = Output + dataReader.GetValue(0) + " - " + dataReader.GetValue(1) + "</br>"; 
      } 

      Response.Write(Output); 

      dataReader.Close(); 
      command.Dispose(); 
      cnn.Close(); 

      lblName.Visible = false; 
      txtName.Visible = false; 
      lstLocation.Visible = false; 
      chkC.Visible = false; 
      chkASP.Visible = false; 
      rdMale.Visible = false; 
      rdFemale.Visible = false; 
      btnSubmit.Visible = false; 
     } 

を:

An exception of type 'System.InvalidOperationException' occurred in System.Data.dll but was not handled in user code

Additional information: ExecuteReader requires an open and available Connection. The connection's current state is closed.

DBがクローズされている理由がわからないので接続ができたと思いますか?

+0

サンプルコードを最小限に抑えて、問題を表示するようにしてください。 "lblName.Visible"などのすべてのものはノイズです。また、コードはいくつかのより良い書式設定を使用することができます。また、例外がスローされる場所を指す必要があります。 –

答えて

0

SQL接続クラスのOpen method経由で明示的に接続を開こうとしてください。

おそらくここではusingステートメントが適切です。ように:

using (var cnn = new SqlConnection(connectionString)) 
{ 
    // Use the connection 
} 
0

ご協力ありがとうございます。私は物事を再調整し、.Openメソッドを追加しました。

string connectionString = null; 
      SqlConnection cnn; 
      SqlCommand command; 
      string sql, Output = ""; 

      connectionString = @"Data Source=DESKTOP-RV7DDL4\SQLEXPRESS;Initial Catalog=DemoDBase 
       ;User ID=sa;Password=test1234"; 

      cnn = new SqlConnection(connectionString); 
      sql = "Select TutorialID, TutorialName from demoTable"; 



      cnn.Open(); 

      command = new SqlCommand(sql, cnn); 
      SqlDataReader dataReader; 
      dataReader = command.ExecuteReader(); 

      while (dataReader.Read()) 
      { 
       Output = Output + dataReader.GetValue(0) + " - " + dataReader.GetValue(1) + "</br>"; 
      } 

      Response.Write(Output); 

      dataReader.Close(); 
      command.Dispose(); 
      cnn.Close();