0

我試圖複製(幾乎是一步一步地)在這個視頻https://www.youtube.com/watch?v=pBCPc44CE74&index=3&list=PL6n9fhu94yhX5dzHunAI2t4kE0kOuv4D7的代碼,但我的「騙子」變量導致錯誤在兩個地方。我的代碼是:變量(asp.net連接字符串)不會在當前的背景下存在的,我不明白爲什麼

protected void Page_Load(object sender, EventArgs e) 
    { 
     string CS = ConfigurationManager.ConnectionStrings["CSDB"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(CS)) ; 

      SqlCommand cmd = new SqlCommand("SELECT * FROM admin_UserRole WHERE Archived = 0", con); 
      con.Open(); 
      RoleGrid.DataSource = cmd.ExecuteReader(); 
      RoleGrid.DataBind(); 

    } 

} 

}

我的SQL語句之後和 'CON' 出現錯誤 'con.Open();'以及。

我顯然新本,所以如果道歉,我不是做的東西不夠清晰回答的問題。

回答

0

你using語句提前關閉...這意味着...您SqlConnection對象被創建並立即佈置。

所以修改代碼如下

protected void Page_Load(object sender, EventArgs e) 
    { 
     string CS = ConfigurationManager.ConnectionStrings["CSDB"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(CS)){ 

      SqlCommand cmd = new SqlCommand("SELECT * FROM admin_UserRole WHERE Archived = 0", con); 
      con.Open(); 
      RoleGrid.DataSource = cmd.ExecuteReader(); 
      RoleGrid.DataBind(); 

    } 

} 
+0

成功!我終於打印結果到網格(我有一些其他的編譯錯誤,我通過亂搞web.config = /)造成的!非常感謝! 我並不需要去嘗試第二個答案。 – sidewinder

+0

不客氣。快樂編碼! –

0

檢查

using (SqlConnection con = new SqlConnection(CS)) 
{ 
    if (con.State == ConnectionState.Closed) 
    { 
    con.Open(); 
    } 

    ....... 
} 
相關問題