这个简单问题不解决 别的没法进行了
有2个页面:
1:页面写的是登录信息
保存了session
if(dr.Read())
{ Session[ "User_id "]=dr[ "User_id "];//这里接受的总是空值~!!!急需解决
Session[ "user_power "]=dr[ "User_power "];
if((int)Session[ "User_power "]==0)
{Response.Redirect( "query.aspx ");
}
2.query页面调用sesion信息..
string strsql = "select * from student where StudentID=@id ";
SqlCommand cmd = new SqlCommand(strsql, conn);
cmd.Parameters.Add(new SqlParameter( "@id ", SqlDbType.VarChar, 50));
cmd.Parameters[ "@id "].Value = Session[ "User_id "].ToString();
//为什么总说@id
未将对象引用设置到对象的实例?
怎么改正一下?
------解决方案--------------------前面加个语句调试一下,除非你的datareader没有获得任何数据
------解决方案--------------------楼上说得对,@id不是你的表字段名,如果改成@StudentID,或者可以。
------解决方案--------------------服务器支持session吗?
------解决方案--------------------@id 申明了吗?全文出来呀,别搞一半
Session[ "User_id "]=dr[ "User_id "];//这里接受的总是空值~!!!急需解决
dr的真吗?
全文出来
------解决方案--------------------你在页面上用label把dr的值显示出来看看。
确认dr获得值了,再看后面的。
你贴出来的这段貌似没问题。
------解决方案--------------------cmd.Parameters[ "@id "].Value = Session[ "User_id "].ToString();
//为什么总说@id未将对象引用设置到对象的实例?
将cmd.Parameters[ "@id "].改为cmd.Parameters[ "id "]
------解决方案--------------------Session[ "User_id "]=dr[ "User_id "];
跟踪下这
------解决方案--------------------Session[ "User_id "]=dr[ "User_id "];//这里接受的总是空值~!!!急需解决
单步调试一下你dr[ "User_id "]的值,应该是读出来的是空值,这可能跟数据库有关。
------解决方案--------------------User_id是student表的字段吗 否则把 dr[ "User_id "]改为dr( "studentid ")
------解决方案--------------------yls087412(codelive) <=====正解
------解决方案--------------------这样做一下测试:
if(dr.Read())
{
string USERID=dr[ "User_id "]; //变量存储,加个断点,看看到底有数据没
Session[ "User_id "]=dr[ "User_id "];//这里接受的总是空值~!!!急需解决
Session[ "user_power "]=dr[ "User_power "];
if((int)Session[ "User_power "]==0)
{Response.Redirect( "query.aspx ");
}
不是这的话,检查SQL
------解决方案--------------------你既然这里是Session[ "User_id "]=ss;
第二个页面当然要这样写
cmd.Parameters[ "@StudentID "].Value = Session[ "User_id "].ToString();