asp.net(c#)TextBox的一些问题
比如我有数据库表table如下:id(int)username(varchar)name(varchar)paw(varchar)1111张三2222李四3333王五。。...
比如我有 数据库表table 如下:
id(int) username(varchar) name(varchar) paw(varchar)
1 111 张三
2 222 李四
3 333 王五
。。。
我的问题是:
当我在
TextBox1.Text输入111,TextBox2.Text就显示 张三
TextBox1.Text输入222,TextBox2.Text就显示 李四
TextBox1.Text输入333,TextBox2.Text就显示 王五
应该怎样写代码?不要这样的写法if(textbox1.Text=="111"){
textbox2.Text="张三";
}
要是有1千个编号和姓名不是累死人了。
请各位帮帮忙,我是个菜鸟,请代码写得完整点,谢谢了。
我用VS2008做的,asp.net(c#)。。 展开
id(int) username(varchar) name(varchar) paw(varchar)
1 111 张三
2 222 李四
3 333 王五
。。。
我的问题是:
当我在
TextBox1.Text输入111,TextBox2.Text就显示 张三
TextBox1.Text输入222,TextBox2.Text就显示 李四
TextBox1.Text输入333,TextBox2.Text就显示 王五
应该怎样写代码?不要这样的写法if(textbox1.Text=="111"){
textbox2.Text="张三";
}
要是有1千个编号和姓名不是累死人了。
请各位帮帮忙,我是个菜鸟,请代码写得完整点,谢谢了。
我用VS2008做的,asp.net(c#)。。 展开
7个回答
展开全部
首先设置textbox1的属性 AutoPostBack="True"
这样你在textbox1输入文本的时候 才能回发给服务器
然后双击textbox1控件 就会在代码中生成一个
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
}
这样当你改变 textbox1中的文本时 就会触发这个事件
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
string sql = "select name from table where username='" + this.TextBox1.Text + "'";
string sqlstr = "";//连库语句 你自己写吧
SqlConnection con = new SqlConnection(sqlstr);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader dr = cmd.EndExecuteReader();
if (dr.HasRows)
{
dr.Read();
this.TextBox2.Text = dr["name"].ToString();
}
dr.Close();
con.Close();
}
这是我写的 不知道你用的是什么库 我这个是sql server的 可以改成你需要的方式
这样应该就可以
总的思想就是 当你改变 TextBox1中的文本时触发事件 然后去数据库中查询 有就赋值给TextBox2
这样你在textbox1输入文本的时候 才能回发给服务器
然后双击textbox1控件 就会在代码中生成一个
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
}
这样当你改变 textbox1中的文本时 就会触发这个事件
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
string sql = "select name from table where username='" + this.TextBox1.Text + "'";
string sqlstr = "";//连库语句 你自己写吧
SqlConnection con = new SqlConnection(sqlstr);
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader dr = cmd.EndExecuteReader();
if (dr.HasRows)
{
dr.Read();
this.TextBox2.Text = dr["name"].ToString();
}
dr.Close();
con.Close();
}
这是我写的 不知道你用的是什么库 我这个是sql server的 可以改成你需要的方式
这样应该就可以
总的思想就是 当你改变 TextBox1中的文本时触发事件 然后去数据库中查询 有就赋值给TextBox2
展开全部
首先有两个TextBox,TextBox1的AutoPostBack为true
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"
ontextchanged="TextBox1_TextChanged"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
</div>
</form>
然后假设有些数据存放在DataTable里面
public partial class _Default : System.Web.UI.Page
{
DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
dt.Columns.Add("id");
dt.Columns.Add("username");
dt.Columns.Add("name");
dt.Rows.Add("1", "111", "张三");
dt.Rows.Add("2", "222", "李四");
dt.Rows.Add("3", "333z", "王五");
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
DataRow[] result=dt.Select("username='" + TextBox1.Text + "'");
if(result.Length>0)
TextBox2.Text = result[0]["name"].ToString();
}
}
上面的代码是最简单的实现方式,你需要让TextBox1失去焦点或者在里面按回车才会得到TextBox2的结果,如果用ajax是最好的,但你是刚接触的新手。
而且当数据量大的时候就不要用DataTable去数据了,那样耗内存,就必须要在TextBox1_TextChanged事件中每次都从数据库查询数据然后赋值给TextBox2
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"
ontextchanged="TextBox1_TextChanged"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
</div>
</form>
然后假设有些数据存放在DataTable里面
public partial class _Default : System.Web.UI.Page
{
DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
dt.Columns.Add("id");
dt.Columns.Add("username");
dt.Columns.Add("name");
dt.Rows.Add("1", "111", "张三");
dt.Rows.Add("2", "222", "李四");
dt.Rows.Add("3", "333z", "王五");
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
DataRow[] result=dt.Select("username='" + TextBox1.Text + "'");
if(result.Length>0)
TextBox2.Text = result[0]["name"].ToString();
}
}
上面的代码是最简单的实现方式,你需要让TextBox1失去焦点或者在里面按回车才会得到TextBox2的结果,如果用ajax是最好的,但你是刚接触的新手。
而且当数据量大的时候就不要用DataTable去数据了,那样耗内存,就必须要在TextBox1_TextChanged事件中每次都从数据库查询数据然后赋值给TextBox2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的焦点事件应该得到了吧。。
触发焦点后。。。
if(textbox1.Text==nill||textbox1.Text=nill)
{
rs...("没有输入");
}
else{
string str=chaxuen(textbox1.Text)。。"通过textbox1.Text的值去查询、这个可以写个方法。。"
if(str.Text==nill||str.Text=nill)
{
re...("没有结果");
}
else
{
textbox2.text=str;
}
}
触发焦点后。。。
if(textbox1.Text==nill||textbox1.Text=nill)
{
rs...("没有输入");
}
else{
string str=chaxuen(textbox1.Text)。。"通过textbox1.Text的值去查询、这个可以写个方法。。"
if(str.Text==nill||str.Text=nill)
{
re...("没有结果");
}
else
{
textbox2.text=str;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string username=textbox1.Text;
string name=(去查询,select name form [表] where username='username');
textbox2.Text=name;
中间的查询过程省去了,不知道你是用什么写的所以不好乱写。一般用个架构会方便的很,自己去连接然后查询装table麻烦,说实在我还真不会
string name=(去查询,select name form [表] where username='username');
textbox2.Text=name;
中间的查询过程省去了,不知道你是用什么写的所以不好乱写。一般用个架构会方便的很,自己去连接然后查询装table麻烦,说实在我还真不会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的回答都不错,你可以尽管选择一个了,我这里不在累赘了。你就用lipai006 - 高级魔法师 六级 他的吧。
string sqlstr = "";连接语句就是 server=(主机名/IP/.);database=数据库名;(password=密码,user id=(比如说Sa))如果你用的是集成验证就不用写password 和User id 你直接写 intergated security=true/sspi这样就Ok了
string sqlstr = "";连接语句就是 server=(主机名/IP/.);database=数据库名;(password=密码,user id=(比如说Sa))如果你用的是集成验证就不用写password 和User id 你直接写 intergated security=true/sspi这样就Ok了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用这个TextBox1_TextChanged事件来做,
当TextBox1_TextChanged事件爆发时,进行数据库查询,然后复制即可.
但要注意,这样最好用ajax。
当TextBox1_TextChanged事件爆发时,进行数据库查询,然后复制即可.
但要注意,这样最好用ajax。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询