麻烦各位老师看看,下面是代码:
窗口截入代码:
private void form_yuangong_Load(object sender, EventArgs e)
{
Datebase db = new Datebase();
string sql = "select * from shixinyuangong";
lst_yuangongliebiao.DataSource = db.Query(sql);
lst_yuangongliebiao.DisplayMember = "姓名";
}
selectedindexchanged事件代码:
private void lst_yuangongliebiao_SelectedIndexChanged(object sender, EventArgs e)
{
string selectname = lst_yuangongliebiao.SelectedItem.ToString();
string sql = "select * from shixinyuangong where 姓名='" + selectname + "'";
//txt_xinming.Text = selectname;
Datebase db = new Datebase();
DataTable dt = new DataTable();
dt = db.Query(sql);
txt_xinming.Text = dt.Rows[0]["姓名"].ToString();
txt_bumeng.Text = dt.Rows[0]["部门"].ToString();
txt_zhiwei.Text = dt.Rows[0]["职位"].ToString();
txt_zaizhishijian.Text = dt.Rows[0]["入职时间"].ToString();
txt_phone.Text = dt.Rows[0]["手机"].ToString();
txt_qq.Text = dt.Rows[0]["QQ"].ToString();
txt_mail.Text = dt.Rows[0]["mail"].ToString();
}
异常:
5 个解决方案
#1
提示很清楚,没有查询到记录,调试下。
#2
string selectname = lst_yuangongliebiao.SelectedText
comboBox.SelectedItem: 这只是一个对象
comboBox.SelectedText:表示组合框中当前选定文本的字符串
comboBox.SelectedValue:包含由 ValueMember 属性指定的数据源成员的值的对象。
comboBox.SelectedItem: 这只是一个对象
comboBox.SelectedText:表示组合框中当前选定文本的字符串
comboBox.SelectedValue:包含由 ValueMember 属性指定的数据源成员的值的对象。
#3
string selectname = lst_yuangongliebiao.SelectedItem.ToString();
-》
看看你的 selectName是个什么东西?SelectedItem 表示绑定的对象,而不是一个字符串。可以换成Text
-》
看看你的 selectName是个什么东西?SelectedItem 表示绑定的对象,而不是一个字符串。可以换成Text
#4
string selectname = lst_yuangongliebiao.SelectedItem.
Text.ToString();
你应该获取选择项的文本,而不是选择项的类型
你应该获取选择项的文本,而不是选择项的类型
#5
我看了,是有这样的问题,原因是你在给LISTBOX设置数据源和绑定的时候会触发SelectedIndexChanged事件,你可以设置一个全局布尔变量 在页面LOAD完之后再赋值TRUE 然后在事件里面判断 是TRUE再执行。。
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt=new System.Data.DataTable();
dt.Columns.Add("ID",Type.GetType("System.Int32"));
dt.Columns.Add("name",Type.GetType("System.String"));
for(int i=0;i<10;i++)
{
DataRow dr=dt.NewRow();
dr["ID"]=i;
dr["name"]="这是"+i;
dt.Rows.Add(dr);
}
this.listBox1.DataSource = dt;
this.listBox1.ValueMember = "ID";
this.listBox1.DisplayMember = "name";
temp = true;
//this.listBox1.Items.Add("test1");
//this.listBox1.Items.Add("test2");
//this.listBox1.Items.Add("test3");
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(temp)
MessageBox.Show("选择的是:" + listBox1.Text + ",位列第" + listBox1.SelectedIndex.ToString(), "信息提示");
}
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt=new System.Data.DataTable();
dt.Columns.Add("ID",Type.GetType("System.Int32"));
dt.Columns.Add("name",Type.GetType("System.String"));
for(int i=0;i<10;i++)
{
DataRow dr=dt.NewRow();
dr["ID"]=i;
dr["name"]="这是"+i;
dt.Rows.Add(dr);
}
this.listBox1.DataSource = dt;
this.listBox1.ValueMember = "ID";
this.listBox1.DisplayMember = "name";
temp = true;
//this.listBox1.Items.Add("test1");
//this.listBox1.Items.Add("test2");
//this.listBox1.Items.Add("test3");
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(temp)
MessageBox.Show("选择的是:" + listBox1.Text + ",位列第" + listBox1.SelectedIndex.ToString(), "信息提示");
}
#1
提示很清楚,没有查询到记录,调试下。
#2
string selectname = lst_yuangongliebiao.SelectedText
comboBox.SelectedItem: 这只是一个对象
comboBox.SelectedText:表示组合框中当前选定文本的字符串
comboBox.SelectedValue:包含由 ValueMember 属性指定的数据源成员的值的对象。
comboBox.SelectedItem: 这只是一个对象
comboBox.SelectedText:表示组合框中当前选定文本的字符串
comboBox.SelectedValue:包含由 ValueMember 属性指定的数据源成员的值的对象。
#3
string selectname = lst_yuangongliebiao.SelectedItem.ToString();
-》
看看你的 selectName是个什么东西?SelectedItem 表示绑定的对象,而不是一个字符串。可以换成Text
-》
看看你的 selectName是个什么东西?SelectedItem 表示绑定的对象,而不是一个字符串。可以换成Text
#4
string selectname = lst_yuangongliebiao.SelectedItem.
Text.ToString();
你应该获取选择项的文本,而不是选择项的类型
你应该获取选择项的文本,而不是选择项的类型
#5
我看了,是有这样的问题,原因是你在给LISTBOX设置数据源和绑定的时候会触发SelectedIndexChanged事件,你可以设置一个全局布尔变量 在页面LOAD完之后再赋值TRUE 然后在事件里面判断 是TRUE再执行。。
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt=new System.Data.DataTable();
dt.Columns.Add("ID",Type.GetType("System.Int32"));
dt.Columns.Add("name",Type.GetType("System.String"));
for(int i=0;i<10;i++)
{
DataRow dr=dt.NewRow();
dr["ID"]=i;
dr["name"]="这是"+i;
dt.Rows.Add(dr);
}
this.listBox1.DataSource = dt;
this.listBox1.ValueMember = "ID";
this.listBox1.DisplayMember = "name";
temp = true;
//this.listBox1.Items.Add("test1");
//this.listBox1.Items.Add("test2");
//this.listBox1.Items.Add("test3");
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(temp)
MessageBox.Show("选择的是:" + listBox1.Text + ",位列第" + listBox1.SelectedIndex.ToString(), "信息提示");
}
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt=new System.Data.DataTable();
dt.Columns.Add("ID",Type.GetType("System.Int32"));
dt.Columns.Add("name",Type.GetType("System.String"));
for(int i=0;i<10;i++)
{
DataRow dr=dt.NewRow();
dr["ID"]=i;
dr["name"]="这是"+i;
dt.Rows.Add(dr);
}
this.listBox1.DataSource = dt;
this.listBox1.ValueMember = "ID";
this.listBox1.DisplayMember = "name";
temp = true;
//this.listBox1.Items.Add("test1");
//this.listBox1.Items.Add("test2");
//this.listBox1.Items.Add("test3");
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(temp)
MessageBox.Show("选择的是:" + listBox1.Text + ",位列第" + listBox1.SelectedIndex.ToString(), "信息提示");
}