C#Winform:将组合框ValueMember属性转换为long

C#Winform:将组合框ValueMember属性转换为long,c#,winforms,C#,Winforms,我有一个带有Id、Name列的组合框。我已将这些值添加到带有datatable的combobox中: DataTable.Rows.Add(1, "Name1"); DataTable.Rows.Add(2, "Name2"); id = (long)(comboBox1.SelectedValue); Id列应该是长的。但是,当我尝试获取Id值时,它显示无法转换为long: long id; id = this.comboBox1.ValueMemb

我有一个带有Id、Name列的组合框。我已将这些值添加到带有datatable的combobox中:

        DataTable.Rows.Add(1, "Name1");
        DataTable.Rows.Add(2, "Name2");
    id = (long)(comboBox1.SelectedValue);
Id列应该是长的。但是,当我尝试获取Id值时,它显示无法转换为long:

long id;
id = this.comboBox1.ValueMember;
    id = (long)(comboBox1.SelectedValue);
怎么做

    id = (long)(comboBox1.SelectedValue);
谢谢

    id = (long)(comboBox1.SelectedValue);

@BlueMonkMN,差不多了,但当我尝试MessageBox.Show prints 1时(来自上面的数据表值)

    id = (long)(comboBox1.SelectedValue);
但是这条线

    id = (long)(comboBox1.SelectedValue);
抛出强制转换异常

    id = (long)(comboBox1.SelectedValue);

为什么不能将1转换为长整数?

首先,确保您需要一个长整数。正则整数(int)在数据表中指定为Systemn.Int32,通常在32位操作系统上效果最好。此整数的范围为-2147483648到2147483647。如果事实上您需要比这个大的整数,那么继续在DataTable中使用System.Int64并在代码中使用long

    id = (long)(comboBox1.SelectedValue);
接下来,您试图访问组合框的错误属性。您需要访问SelectedValue属性。ValueMember是一个属性,用于确定SelectedValue属性将公开绑定对象的哪个列/属性

    id = (long)(comboBox1.SelectedValue);
下面是一些代码,大致说明了组合框应如何配置: (从InitializeComponent生成的代码)

    id = (long)(comboBox1.SelectedValue);
下面是一些代码,说明了如何从组合框中检索所选值,如果您希望id是长整数:

    id = (long)(comboBox1.SelectedValue);
     long id = (long)(comboBox1.SelectedValue);

ValueMember是字符串datatpye属性,它表示列的名称。OP必须使用SelectedValue属性。

您知道ValueMember属性吗?谢谢,我犯了一个错误,但即使使用SelectedValue,我也无法转换为long.use,long p=long.Parse(comboBox1.SelectedValue.ToString());
    id = (long)(comboBox1.SelectedValue);