C#.NET的问题!!关于用session给textbox赋值的问题 求高手解答!

protectedvoidPage_Load(objectsender,EventArgse){stringconnString="DataSource=MAPLE\\M... protected void Page_Load(object sender, EventArgs e)
{
string connString = "Data Source=MAPLE\\MAPLE;Initial Catalog=SC_System;Integrated Security=True";
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM Student WHERE Sno = '" + Session["Sno"] + "'";
SqlDataReader dr = cmd.ExecuteReader();
for (int i = 0; i <= 3; i++)
{
if (dr.Read())
{
Session["rs[i]"] = dr.GetValue(i);
}
}
TextBox1.Text = (string)Session["rs[1]"];
TextBox0.Text = (string)Session["rs[0]"];
TextBox2.Text = (string)Session["rs[2]"];
TextBox3.Text = (string)Session["rs[3]"];
}

这段是我的程序。。可是为什么总是赋值不进去??数据库连接肯定是没问题的。。
展开
 我来答
21d801
2012-06-29 · TA获得超过660个赞
知道小有建树答主
回答量:830
采纳率:100%
帮助的人:918万
展开全部
TextBox1.Text = (string)Session["rs[1]"];
TextBox0.Text = (string)Session["rs[0]"];
TextBox2.Text = (string)Session["rs[2]"];
TextBox3.Text = (string)Session["rs[3]"];
----
“rs[1...4]”都会被当作字符串来解析,系统不会帮你 去获取rs[1]里面的东西!!!
更多追问追答
追问
可是这应该是session的格式吧、、那应该怎么改?
追答
string temp = rs[1].tostring();
textbox0.text = session[temp].tostring();
1 注意大小写
2 注意我写的还有你写的代码中都未包含对于session[""]可能为null的情形的处里
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
klnstp7
2012-06-29 · 超过16用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:33.3万
展开全部
protected void Page_Load(object sender, EventArgs e)
{
string connString = "Data Source=MAPLE\\MAPLE;Initial Catalog=SC_System;Integrated Security=True";
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM Student WHERE Sno = '" + Session["Sno"] + "'";
SqlDataReader dr = cmd.ExecuteReader();
while(dr.Read())
{
TextBox0.Text =(string) dr.GetValue(0);
TextBox1.Text = (string)dr.GetValue(1);
TextBox2.Text = (string)dr.GetValue(2);
TextBox3.Text = (string)dr.GetValue(3);
}
dr.Close();
conn.Close();
}
更多追问追答
追问
不行 还是没有值显示出来、、
追答
查查SQL,直接在查询分析器里执行,看看有没有值,估计是你的Session["Sno"] 为空了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
果真懂
2012-06-29 · TA获得超过236个赞
知道小有建树答主
回答量:201
采纳率:66%
帮助的人:47.2万
展开全部
修改过后的代码 :
protected void Page_Load(object sender, EventArgs e)
{
string connString = "Data Source=MAPLE\\MAPLE;Initial Catalog=SC_System;Integrated Security=True";
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM Student WHERE Sno = '" + Session["Sno"] + "'";
SqlDataReader dr = cmd.ExecuteReader();
for (int i = 0; i <= 3; i++)
{
if (dr.Read())
{
Session["rs["+i+"]"] = dr.GetValue(i);
}
}
TextBox1.Text = (string)Session["rs[1]"];
TextBox0.Text = (string)Session["rs[0]"];
TextBox2.Text = (string)Session["rs[2]"];
TextBox3.Text = (string)Session["rs[3]"];

dr.Close();
conn.Close();

}
你之所以获取不到值是应该 Session["rs[i]"] = dr.GetValue(i);这句写错了
如果这样的赋值的话 i 就是变量就是一个i 不是你想的1,2,…… 这个就是你为什么获取不到值得原因
还有一点记住 打开数据库 不用的时候要关掉
追问
我不知道做了什么 然后只显示出第一个值 而后面3个值还是没有显示。。
追答
你的数据库中没有只吧

SELECT * FROM Student WHERE Sno = '" + Session["Sno"] + "'";

确定它查询出来是有值的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式