我数据库里面有一个 Member表
表里面有以下字段:MemberID,MemberName,Called;在窗体中添加一个ListBox,显示所有MemberName;再在窗体里面添加两个TextBox,分别显示MemberName,Called;我想问当我点ListBox中任何一个MemberName时,两个TextBox中的值如何随之同步改变?我用三层架构写的:ListBox中MemberName的选项从数据库中 Member表中读取。下面这代码根本不行:
if (this.listbox.SelectedIndex != -1)
{
this.textBox.Text=this.listbox.SelectedItem.ToString();
}希望高手 解答!!! 求完整的代码 必有重赏... 谢谢
表里面有以下字段:MemberID,MemberName,Called;在窗体中添加一个ListBox,显示所有MemberName;再在窗体里面添加两个TextBox,分别显示MemberName,Called;我想问当我点ListBox中任何一个MemberName时,两个TextBox中的值如何随之同步改变?我用三层架构写的:ListBox中MemberName的选项从数据库中 Member表中读取。下面这代码根本不行:
if (this.listbox.SelectedIndex != -1)
{
this.textBox.Text=this.listbox.SelectedItem.ToString();
}希望高手 解答!!! 求完整的代码 必有重赏... 谢谢
private void Form1_Load(object sender, EventArgs e)
{
string[] args = {"a","b","c" };
this.listBox1.DataSource = args;
} private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//在各自的判断里面取到值以后到数据库中查,然后赋值。
if (this.listBox1.SelectedItem.ToString().Equals("a"))
{
this.textBox1.Text = "a1";
this.textBox2.Text = "a2";
}
if (this.listBox1.SelectedItem.ToString().Equals("b"))
{
this.textBox1.Text = "b1";
this.textBox2.Text = "b2";
}
if (this.listBox1.SelectedItem.ToString().Equals("c"))
{
this.textBox1.Text = "c1";
this.textBox2.Text = "c2";
}
}
不行的结果是什么?提示是什么?特别讨厌这种问题。“我的电脑启动不了,怎么办”“我的WORD运行不了,怎么回事?”每个问题都有一万多种可能的原因,不给出现象让别人帮你假设?没人有那闲工夫。
if (this.listbox.SelectedIndex != -1)
{
this.textBox.Text=this.listbox.SelectedItem.ToString();
}
//封装属性 public class Member
{
int userid; public int Userid
{
get { return userid; }
set { userid = value; }
}
string userName; public string UserName
{
get { return userName; }
set { userName = value; }
}
string called; public string Called
{
get { return called; }
set { called = value; }
}
}
//数据中查询存储过程
create up_T_member_selectmembername
@id int
as
select membername from T_Member where memberid=@id
//memberDAO 中写入方法
// 查询
public static DataTable Member()
{
try
{
return DbHelper.ExecuteSelectProc("Up_Member_ShowAll");
}
catch (Exception ex)
{
throw ex;
}
}
public static DataTable selectmembername(Member member)
{
DataTable dt = null;
SqlParameter[] paras ={
new SqlParameter("@name",SqlDbType.NVarChar,5)
};
paras[0].Value = member.Userid;
dt = DbHelper.ExecuteSelectProc("up_T_member_selectmembername", paras); return dt;
}
// 返回
public static DataTable selectmembername(Member member)
{
return SysMemberDAO.selectmembername(member);
}
//绑定listbox
public void banding_listbox()
{
this.lboxmember.DataSource = SysMemberManage.Member();
this.lboxmember.DisplayMember = "membername";
this.lboxmember.ValueMember = "memberid";
}// 在窗体里调用方法
private void lboxmember_SelectedIndexChanged(object sender, EventArgs e)
{ MemberUser member = new MemberUser();
member.UserName = this.lboxmember.SelectedValue.ToString();
this.textbox.Text = SysMemberManage.selectmembername(member).ToString();
// 最后运行程序
textbox中 显示: System.Data.DataRowView过程就是这样,大神帮忙!
SysMemberManage.selectmembername(member)
你这个方法返回的明显是个Datatable类型啊
你Datatable类型Tostring(),当然是System.Data.DataRowView 这个了Datatable dt=SysMemberManage.selectmembername(member);
this.textbox.Text=dt.rows["MemberName"].toString();
如果是多条还要加条件处理
最后一句dt.rows["MemberName"].toString();这个处理错了this.textbox.Text=dt.rows[0]["MemberName"].toString();
public void banding_listbox()
{
this.lboxmember.DataSource = SysMemberManage.Member(); //
this.lboxmember.DisplayMember = "membername";
this.lboxmember.ValueMember = "memberid";
}
用DataSource 进行绑定能行吗? 你以前做过这样的案例吗? 谢谢
DataRowView dv=this.listbox.SelectedItem as DataRowView
if (dv!= null)
{
this.textBox.Text=dv[1].ToString();
}
DataRowView dv=this.listbox.SelectedItem as DataRowView
if (dv!= null)
{
this.textBox.Text=dv[1].ToString();
}