我已经将Dictionary
作为ComboBox
的数据源,然后将其中的ValueMember
中的ComboBox
保存到数据库中
Dictionary<string, int> GravelCount = new Dictionary<string, int>
{
{"val1",1},
{"val2",2},
};
CB_Place.DataSource = new BindingSource(GravelCount, null);
CB_Place.DisplayMember = "Key";
CB_Place.ValueMember = "Value";
CB_Place.SelectedIndex = -1;
现在,当我尝试阅读时,它是ValueMember
并显示DisplayMember
,如下所示,在第CB_Place.SelectedItem = sqlReader[1].ToString();
行中没有任何反应,combobox
未填充ValueMember
public int GetPersonification()
{
string connStr = ConfigurationManager.ConnectionStrings["SRJDconnstr"].ToString();
string cmdStr = @"SELECT SIZ,
PLACE,
ONE_OR_MORE,
R_OR_L,
EKO_OR_ASH,
NOTICE
FROM PERSONIFICATION
WHERE ID=@ID;";
using (SqlConnection conn = new SqlConnection(connStr))
using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
{
conn.Open();
cmd.CommandText = cmdStr;
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.Int)).Value = tb_id.text;
SqlDataReader sqlReader = cmd.ExecuteReader();
while (sqlReader.Read())
{
TB_Size.Text = sqlReader[0].ToString();
CB_Place.SelectedItem = sqlReader[1].ToString();
TB_Note.Text = sqlReader[5].ToString();
}
}
}
我也尝试使用ValueMember
和((KeyValuePair<string,int>)CB_type.SelectedItem).Value.ToString();