2016-12-29 68 views
0

Hello guys im正在尋找任何關於我的代碼的幫助,我需要解決有關從列表框中刷新標籤中的值的問題。我用他的統計數據,比賽等工作的球員。我想看看他的比賽的具體比分(我可以從列表框中選擇),並看到他在比賽中殺死/死亡,任何人有想法?感謝您的關注。對不起我的英語不好。 Lanky是蘭斯,Jménohráče是名,Věk是年齡,Země是國家。 Početkillu意味着殺人數,另一個意味着死亡數,Veškeréodehrané瘦長意味着他所有的比賽。如何從列表框c中刷新標籤的值#

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    connection = new SqlConnection(connectionstring); 
    try 
    { 
     connection.Open(); 
     var q = "SELECT * FROM Lanky"; 
     var query = new SqlCommand(q, connection); 
     using (var dr = query.ExecuteReader()) 
     { 
      var success = dr.Read(); 
      if (success) 
      { 
       label8.Text = dr["Kills"].ToString(); 
       label9.Text = dr["Deaths"].ToString(); 
       label1.Text = dr["Jménohráče"].ToString(); 
       label2.Text = dr["Věk"].ToString(); 
       label3.Text = dr["Země"].ToString(); 

      } 
     } 
     connection.Close(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("error " + ex); 
    } 

} 

[https://i.stack.imgur.com/BiEHo.png]

+1

嗨,在列表框中有一個選項來處理更改事件,所以實現該功能,並在該功能,你可以得到選擇的價值基於此,你必須更新你的標籤 –

+0

你的查詢應該是類似'「SELECT * FROM Lanky WHERE MatchId =」 + id;'用'id' d從'listBox1.SelectedItem'得到。 –

+0

但是,任何人都知道如何改變標籤中的值?因爲我可以看到12人死亡和10人死亡,但是當我點擊NHL時,所以標籤仍然不會改變12/10 ...但是在我的數據庫中NHL的比賽中有20人死亡,12人死亡。 – Spuxy

回答

0

應該有方法,其填充列表框和另外一個,在列表框選擇閃光。你已經把數據檢索列表框更改事件。做這樣的事情:

從listbox1_SelectedItemChanged第一,移動代碼到Form_Load事件,像這樣:

private void Form1_Load(object sender, EventArgs e) 
     { 
      connection = new SqlConnection(connectionstring); 
      try 
      { 
       connection.Open(); 
       var q = "SELECT * FROM Lanky"; 
       var query = new SqlCommand(q, connection); 
       using (var dr = query.ExecuteReader()) 
       { 

        ListBox1.Items.Clear(); 
        while (dr.Read()) 
        { 
         ListBox1.Items.Add(dr["Jménohráče"]); 
        } 
       } 

       connection.Close(); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show("error " + ex); 
      } 

     } 

接下來,將selectedItem改做somethign這樣的:

private void ListBox1_SelectedItemChanged(object sender, EventArgs e) 
{ 
    connection = new SqlConnection(connectionstring); 
    try 
    { 
     connection.Open(); 
     var q = "SELECT * FROM Lanky WHERE Jménohráče = @jh"; 
     var query = new SqlCommand(q, connection); 
     query.Parameters.Add("@jh", ListBox1.SelectedValue.ToString()) 
     using (var dr = query.ExecuteReader()) 
     { 

      ListBox1.Items.Clear(); 
      dr.Read(); 

      label8.Text = dr["Kills"].ToString(); 
      label9.Text = dr["Deaths"].ToString(); 
      label1.Text = dr["Jménohráče"].ToString(); 
      label2.Text = dr["Věk"].ToString(); 
      label3.Text = dr["Země"].ToString(); 

     } 

     connection.Close(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("error " + ex); 
    } 

}