2016-04-05 18 views
0

デバッガが実行クエリにヒットした直後に、私のコードに何が間違っているかを調べるのに何らかの問題があります。最初のチャンス例外がスローされました。テストしてからクエリではないことがわかりますSQL Management Studioで使用できます。もし何が間違っているかについて誰かが私にある程度の洞察を与えることができれば、それは大いに評価されるだろう。ここでファーストチャンス例外ASP.NET

は私のコードは、文字列を連結するときは、スペースを追加する必要があり、

/// <summary> 
    /// 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    protected void Page_Load(object sender, EventArgs e) { 
     if (!IsPostBack) { 
      string con_string = WebConfigurationManager.ConnectionStrings["CHDBConnectionString"].ConnectionString; 
      SqlConnection con = new SqlConnection(con_string); 
      SqlCommand cmd = new SqlCommand("SELECT SUBSTRING(NursingUnitID, 1, 1) AS Floor, COUNT(*) AS Patients" + 
              "FROM Admissions" + 
              "WHERE SUBSTRING(NursingUnitID, 1, 1) IN ('1', '2', '3')" + 
              "AND DischargeDate IS NULL" + 
              "GROUP BY SUBSTRING(NursingUnitID, 1, 1)", con); 

      try { 
       using (con) { 
        con.Open(); 
        SqlDataReader reader = cmd.ExecuteReader(); 

        chtFloor.Series["Series1"].Name = "currentPatients"; 
        chtFloor.Series["currentPatients"].Points.DataBindXY(reader, "Floor", "Patients"); 

        chtFloor.Width = 600; 
        chtFloor.Height = 600; 
        chtFloor.BorderSkin.SkinStyle = BorderSkinStyle.Emboss; 
        chtFloor.Titles.Add(new Title("Number of Current Patients on Each Floor", Docking.Top, new Font("Arial", 20f), Color.Black)); 
        chtFloor.Titles.Add(new Title("Nursing Unit", Docking.Bottom, new Font("Arial", 12f), Color.Black)); 
        chtFloor.BackColor = System.Drawing.ColorTranslator.FromHtml("AliceBlue"); 
       } 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine(ex.ToString()); 
      } 
     } 
    } 
+0

をあなたがスローされた例外を提供してもらえますか? – Castaglia

+0

文字列の連結は、ユーザーの入力をクエリに追加しようとしたときの記号です。私は[マルチライン文字列リテラル](http://stackoverflow.com/questions/1100260/multiline-string-literal-in-c-sharp)の答えをチェックし、実際に入力を渡そうとすると明らかにパラメータ化されたクエリを使用することをお勧めしたいあなたの質問。 –

+0

(現在の状態の質問は、誤植として閉じられる可能性が高いですが、それをどう修正するかはわかりません)。 –

答えて

1

です:

SqlCommand cmd = new SqlCommand(
    "SELECT SUBSTRING(NursingUnitID, 1, 1) AS Floor, COUNT(*) AS Patients " + 
    "FROM Admissions " + 
    "WHERE SUBSTRING(NursingUnitID, 1, 1) IN ('1', '2', '3') " + 
    "AND DischargeDate IS NULL " + 
    "GROUP BY SUBSTRING(NursingUnitID, 1, 1)", con); 
関連する問題