将值设置为ComboBoxs项目#C
我试图在组合框中的项目上设置值,但每次尝试时都会得到结果'null'。我是否定义了错误的价值,还是我试图以错误的方式获得价值?将值设置为ComboBoxs项目#C
// Setting the value
sqlCmd.CommandText = "SELECT Id, Ime FROM Unajmljivaci WHERE Aktivan = 0";
conn.Open();
using (var reader = sqlCmd.ExecuteReader())
{
while (reader.Read())
{
cmbUnajmljivaci.Items.Add(new { Id = reader["Id"].ToString(), Ime = reader["Ime"].ToString() });
}
cmbUnajmljivaci.ValueMember = "Id"; // <---
cmbUnajmljivaci.DisplayMember = "Ime";
}
//Retrieving the value
sqlCmd.Parameters.AddWithValue("@SifraUnajmljivca", Convert.ToString(cmbUnajmljivaci.SelectedValue));
using (SqlConnection sqlConn = new SqlConnection("CONNECTION STRING"))
{
DataSet ds = new DataSet();
SqlCommand sqlCmd = sqlConn.CreateCommand();
sqlConn.Open();
SqlDataAdapter SQA_DataAdapter = new SqlDataAdapter(sqlCmd);
SQA_DataAdapter.SelectCommand = new SqlCommand("SELECT Id, Ime FROM Unajmljivaci WHERE Aktivan = 0", sqlConn);
SQA_DataAdapter.Fill(ds, "Table");
if (ds != null)
if (ds .Tables.Count > 0)
{
cmbUnajmljivaci.ValueMember = "Id";
cmbUnajmljivaci.DisplayMember = "Ime";
cmbUnajmljivaci.DataSource = ds.Tables[0];
}
sqlConn.Close();
}
可以使用一些解释去代码转储 – MikeT
您需要设置组合框的数据源。
你能给我多一点请详细回答?我不知道你是如何设置数据源的。 –
cmbUnajmljivaci.DataSource = ; –
尝试所获得的价值是这样的:
dynamic dyn = cmbUnajmljivaci.SelectedItem;
string s = dyn.Id;
甚至内嵌这样的:对于参考,您的问题
//Retrieving the value
sqlCmd.Parameters.AddWithValue("@SifraUnajmljivca", Convert.ToString(((dynamic)cmbUnajmljivaci.SelectedItem).Id);
示例代码,
DataSet ds = new DataSet();
DataTable dt = ds.Tables.Add();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Rows.Add("0", "Item1");
dt.Rows.Add("1", "Item2");
对于插入您需要的具有指定索引的项目使用下面的代码
//Insert the item into the collection with specified index
foreach (DataRow row in dt.Rows)
{
int id = Convert.ToInt32(row["ID"]);
string name=row["Name"].ToString();
comboBox1.Items.Insert(id,name);
}
始终索引应该开始从0(零)。
简单的方法增加值组合框
comboBox1.DataSource=dt;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ID";
究竟是怎么回事?你在cmbUnajmljivaci.Items.Add语句中收到任何错误吗? –
WinForms或WPF? – sebingel
@TheShooter我没有得到任何错误,它只是保存'null'而不是我想要的值。 –