【发布时间】:2018-10-12 14:03:43
【问题描述】:
我在form_load 事件中使用dictionary 填充了combobox,其值和显示成员如下
Dictionary<string, int> GravelCount = new Dictionary<string, int>
{
{1,"text value 1"},
{2,"text value 2"},
};
CB_GravelCount.DataSource = new BindingSource(GravelCount, null);
CB_GravelCount.DisplayMember = "Key";
CB_GravelCount.ValueMember = "Value";
CB_GravelCount.SelectedIndex = -1;
此值成员存储到 sql server 数据库中...一切正常,直到我尝试读取此存储的数据并在发生 form_load 事件时重新分配给 combobox 数据不会被分配组合框值什么都不显示,因为它得到索引 -1 而没有错误
public int GetPersonification()
{
string connStr = ConfigurationManager.ConnectionStrings["SRJDconnstr"].ToString();
string cmdStr = @"SELECT ID,
SIZ,
PLACE,
ONE_OR_MORE,
R_OR_L,
EKO_OR_ASH,
NOTICE
FROM PERSONIFICATION
WHERE SEANCE_ID=@SEANCE_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("@SEANCE_ID", SqlDbType.Int)).Value = F0102.vSessionID;
SqlDataReader sqlReader = cmd.ExecuteReader();
while (sqlReader.Read())
{
PersonificationID = Convert.ToInt32(sqlReader[0].ToString());
TB_Size.Text = sqlReader[1].ToString(); //SIZ
CB_TreatmentPlace.SelectedValue = sqlReader[2].ToString(); //PLACE
CB_GravelCount.SelectedValue = sqlReader[3].ToString(); //ONE_OR_MORE
CB_Side.SelectedValue = sqlReader[4].ToString(); //R_OR_L
CB_TreatmentWay.SelectedValue = sqlReader[5].ToString(); //EKO_OR_ASH
TB_Note.Text = sqlReader[6].ToString(); //NOTICE
}
return 1;
}
}
【问题讨论】:
-
GravelCount 是 Dictionary
但值是 。它编译了吗? -
@ErcanPeker 是的,它是编译的,当我试图让它
我得到错误
标签: c# visual-studio-2013 combobox .net-4.0