2012-10-19 42 views
1

我是C#的新手,我試圖學習(我最近一直在問幾個問題 - 我唯一的編程知識是在Python,PHP和Javascript)。無論如何,我在網上找到了一些關於如何在C#中生成選擇列表的例子,我試圖使用/修改它們以適應我現有的代碼。結果出現了預期的班級錯誤 - 但我正在創建一個班級!這是我的代碼:獲取CS1518:期望的類,委託,枚舉,接口或結構錯誤

private void PeerReview() 
{ 

      MySqlConnection connection; 
      string connStringName = "server=localhost;database=hourtracking;uid=username;password=password"; 
      connection = new MySqlConnection(connStringName); 

      cmd.CommandText = "select name from peer_review_info where active_status=1"; 
      cmd.Connection = connection; 
      connection.Open(); 
      using (SqlDataReader sdr = cmd.ExecuteReader()) 
      { 
       while (sdr.Read()) 
       { 
        ListItem item = new ListItem(); 
        item.Text = sdr["peerrevid"].ToString(); 
        item.Value = sdr["peerrevid"].ToString(); 
        item.Selected = Convert.ToBoolean(sdr["IsSelected"]); 
        chkPeerRev.Items.Add(item); 
       } 
      } 
      connection.Close(); 
     } 
    } 
} 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     this.PeerReview(); 
    } 
} 
+0

等等,還是我只是使用一個不存在的類的方法? –

+2

你從哪裏得到這個錯誤? (哪裏是彩色波形?) – Rawling

+1

你可以顯示整個代碼,包括類嗎? –

回答

2

你有太多的大括號。應該是:

private void PeerReview() 
{  
    MySqlConnection connection; 
    string connStringName = 
     "server=localhost;database=hourtracking;uid=username;password=password"; 
    connection = new MySqlConnection(connStringName); 

    cmd.CommandText = "select name from peer_review_info where active_status=1"; 
    cmd.Connection = connection; 
    connection.Open(); 
    using (SqlDataReader sdr = cmd.ExecuteReader()) 
    { 
     while (sdr.Read()) 
     { 
      ListItem item = new ListItem(); 
      item.Text = sdr["peerrevid"].ToString(); 
      item.Value = sdr["peerrevid"].ToString(); 
      item.Selected = Convert.ToBoolean(sdr["IsSelected"]); 
      chkPeerRev.Items.Add(item); 
     } 
    } 
    connection.Close(); 
} 

那麼,實際上它需要更多的變化, connection需要一個using,它是非常不清楚哪裏cmd定義,但也需要一個using,不應該共享(它應該限於這種方法)。我會重寫爲:

private void PeerReview() 
{  
    string connStringName = SomethingExternal.GetConnectionString(); 

    using(var connection = new MySqlConnection(connStringName)) 
    using(var cmd = connection.CreateCommand()) 
    { 
     cmd.CommandText = 
      "select name from peer_review_info where active_status=1"; 
     connection.Open(); 
     using (var sdr = cmd.ExecuteReader()) 
     { 
      while (sdr.Read()) 
      { 
       ListItem item = new ListItem(); 
       item.Text = sdr["peerrevid"].ToString(); 
       item.Value = sdr["peerrevid"].ToString(); 
       item.Selected = Convert.ToBoolean(sdr["IsSelected"]); 
       chkPeerRev.Items.Add(item); 
      } 
     } 
    } 
} 
相關問題