如何将组合框值转换为int?

时间:2018-01-16 12:48:22

标签: c# .net visual-studio

我已经在这里填写了我的数据库中的信息,但我现在想要提取RTID

 void FillCombo()
            {
                //FJERN IKKE DET HER, IT WORKS, DON'T FIX IT
                SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=Alpha-KHMB;Integrated Security=True");
                string sql = "SELECT* FROM ResourceType";
                SqlCommand cmd = new SqlCommand(sql,con);
                SqlDataReader myreader;
                //FJERN IKKE DET HER, IT WORKS, DON'T FIX IT
                try
                {
                    con.Open();
                    myreader = cmd.ExecuteReader();
                    while (myreader.Read())
                    {
                        int RTID = myreader.GetInt32(0);
                        string sname = myreader.GetString(1);
                        Bx_RT.Items.Add(RTID + " " + sname);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

这是我到目前为止取出RTID的原因,但我不能因为它告诉我它是一个对象,我对如何解决这个问题感到茫然。

private void Btn_Sv_Click(object sender, RoutedEventArgs e)
        {
            string RTID = ((ComboBoxItem)Bx_RT.SelectedItem).Content.ToString();
            CreateResource(RTID);
        }

1 个答案:

答案 0 :(得分:2)

您可以做的是从数据库获取数据时,可以将整个数据传递给combobox的DataSource属性。然后为ValueMember和DisplayMember属性分配相应的数据列名(例如Id和Name)以正确显示项目。

ComboBox1.ValueMember = "id"; 

ComboBox1.DisplayMember = "name";

ComboBox1.DataSource = dataTable;

在您的点击事件中,您可以获得组合框的Selectedvalue。这将返回所选项目的ValueMember。

ComboBox1.SelectedValue