我将Combobox1显示成员中的所有用户名作为用户名,Id作为值成员获取。
现在,当我在Combobox1中选择一个项目时,我启用了一个具有文本框,3个组合框和更新按钮的组合框。考虑了获取特定用户的combobox1的值成员并尝试在组框中显示这些详细信息(文本框包含用户名,3个组合框有部门指定角色的详细信息)。我的数据库表有外键(分离,指定和角色)。它只返回3个组合框值成员而不是显示成员(文本)。如何链接这些拖曳,以便在选择Combobox1中的用户名时相应的值应出现在文本框中以及3个组合框中。
这是我的代码:
private void cmbBoxUpdateEmployee_SelectedIndexChanged_1(object sender, EventArgs e)
{
changecmbBoxValue();
} panelupdateEmployee.Visible = true;
public void changecmbBoxValue()
{
try
{
textBoxUpdateEmployee.Enabled = true;
cmbBoxUpdateEmpRoleID.Enabled = true;
cmbBoxUpdateEmpDepartment.Enabled = true;
cmbBoxUpdateEmpDesignation.Enabled = true;
dbobj.Open();
DataSet ds = new DataSet();
if (!string.IsNullOrEmpty(cmbBoxUpdateEmployee.SelectedValue.ToString()))
{
string cmd = "select Name,RoleId,DepartmentId,DesignationId from tblEmployee where Name='" + cmbBoxUpdateEmployee.SelectedValue+ "'";
//I get system.Datarow conversion not done error.
ds = dbobj.ExecuteDataset(cmd);
if ((ds.Tables[0].Rows.Count) > 0)
{
textBoxUpdateEmployee.Text = Convert.ToString(ds.Tables[0].Rows[0][0].ToString());
cmbBoxUpdateEmpRoleID.SelectedIndex = Convert.ToInt32(ds.Tables[0].Rows[0][1].ToString());
cmbBoxUpdateEmpDepartment.SelectedIndex = Convert.ToInt32(ds.Tables[0].Rows[0][2].ToString());
cmbBoxUpdateEmpDesignation.SelectedIndex = Convert.ToInt32(ds.Tables[0].Rows[0][3].ToString());
lblupdatedelete.Text = " Update Successfully";
EmployeeUpdateInfo();
textBoxUpdateEmployee.Clear();
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error!!" + ex.Message);
}
finally
{
dbobj.Close();
}
}
public void RoleData()
{
DataSet ds = new DataSet();
string query = "select [Id],[Name] from tbl where IsDeleted=0";
ds = dbobj.ExecuteDataset(query);
cmbBoxUpdateRole.DataSource = ds.Tables["tablename"];
cmbBoxUpdateRole.DisplayMember = "Name";
cmbBoxUpdateRole.ValueMember = "Id";
cmbBoxDeleteRole.DataSource = ds.Tables["tablename"];
cmbBoxDeleteRole.DisplayMember = "Name";
cmbBoxDeleteRole.ValueMember = "Id";
}//role combobox..for department,designation also i did the same way to display in 3 comboboxes
我怎样才能做到这一点?任何想法
答案 0 :(得分:0)
我解决了自己的问题。我将selectedIndex
更改为selectedValue
cmbBoxUpdateEmpRoleID.SelectedValue =
Convert.ToInt32(ds.Tables[0].Rows[0][1].ToString());
cmbBoxUpdateEmpDepartment.SelectedValue =
Convert.ToInt32(ds.Tables[0].Rows[0][2].ToString());
cmbBoxUpdateEmpDesignation.SelectedValue =
Convert.ToInt32(ds.Tables[0].Rows[o][3].Tostring());
我需要在changecmbvalue()
事件中调用方法selectedValuechanged
。它按预期工作。