using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Data.OleDb; using System.Timers; namespace forum { /// <summary> /// reply 的摘要说明。 /// </summary> public class reply : System.Web.UI.Page { protected System.Web.UI.WebControls.TextBox txtReply; protected System.Web.UI.WebControls.Button submit; protected System.Web.UI.WebControls.Label labUserID; protected System.Web.UI.WebControls.Label labSubject; protected System.Web.UI.WebControls.Label labContent; protected System.Web.UI.WebControls.Label labDatetime; protected System.Web.UI.WebControls.Repeater myRepeater; protected string strSubject; protected string strUserID; protected string strContent; protected string strDt;
string aa=(string)Session["subject"];
aa的值=null.
而在page_load()里相同的语句是可以读出值的
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;
using System.Timers;
namespace forum
{
/// <summary>
/// reply 的摘要说明。
/// </summary>
public class reply : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txtReply;
protected System.Web.UI.WebControls.Button submit;
protected System.Web.UI.WebControls.Label labUserID;
protected System.Web.UI.WebControls.Label labSubject;
protected System.Web.UI.WebControls.Label labContent;
protected System.Web.UI.WebControls.Label labDatetime;
protected System.Web.UI.WebControls.Repeater myRepeater;
protected string strSubject;
protected string strUserID;
protected string strContent;
protected string strDt;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{ loadSession();
loadReplyData();
}
else
{
loadSession();
}
}
private void loadSession()
{
strUserID=(string)Session["userID"];
Session["userID"]=strUserID;
strContent=(string)Session["content"];
strSubject=(string)Session["subject"];
Session["subject"]=strSubject;
strDt=(string)Session["Datetime"];
//帖子的信息
labUserID.Text="<font color=blue>"+strUserID+"</font>";
labSubject.Text="<font color=blue>"+strSubject+"</font>";
labContent.Text="<font color=blue>  "+strContent+"</font>";
labDatetime.Text="<font color=blue>"+strDt+"</font>";
}
private void loadReplyData()
{
OleDbConnection conn;
string filedata="bin/forum.mdb";
string strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(filedata)+";Persist Security Info=False;";
try
{
conn=new OleDbConnection(strConnect);
string query="SELECT subject,userID,content,datetime FROM questions where questionID="+Int32.Parse(Request.QueryString["ID"])+" ORDER BY questionID,datetime";
DataSet ds = new DataSet() ;
conn.Open() ;
OleDbDataAdapter command = new OleDbDataAdapter(query,conn);
command.Fill(ds,"questions");
DataTable dt=ds.Tables["questions"];
myRepeater.DataSource=dt.DefaultView;
myRepeater.DataBind();
conn.Close();
}
catch(Exception ee)
{
Response.Write("error:"+ee.ToString());
}
finally
{
}
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.submit.Click += new System.EventHandler(this.submit_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void submit_Click(object sender, System.EventArgs e)
{
/*string strTemp=txtReply.Text;
textConvert p=new textConvert(strTemp);
string strReply=p.ToString();
string filedata="bin/forum.mdb";
string strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Server.MapPath(filedata)+";Persist Security Info=False;";
string InsertSql="";
OleDbCommand command;
//InsertSql = "INSERT INTO questions ([category],[userID],[subject],[content],[questionID],[datetime]) VALUES";
//InsertSql +="(@category,@userID,@subject,@content,@questionID,@datetime)";
InsertSql = "INSERT INTO questions ([userID],[subject],[content]) VALUES";
InsertSql +="(@userID,@subject,@content)";
try
{
OleDbConnection conn=new OleDbConnection(strConnect);
conn.Open();
command=new OleDbCommand(InsertSql,conn);
//command.Parameters.Add(new OleDbParameter("@category", OleDbType.Integer));
command.Parameters.Add(new OleDbParameter("@userID",OleDbType.VarChar));
command.Parameters.Add(new OleDbParameter("@subject",OleDbType.VarChar));
command.Parameters.Add(new OleDbParameter("@content",OleDbType.VarChar));
//command.Parameters.Add(new OleDbParameter("@questionID",OleDbType.Integer));
//command.Parameters.Add(new OleDbParameter("@datetime",OleDbType.DBTimeStamp));
//command.Parameters["@category"].Value =13;//Int32.Parse(Session["category"].ToString());
command.Parameters["@userID"].Value = (string)Session["userID"]; //读不出
command.Parameters["@content"].Value = strReply;
//command.Parameters["@questionID"].Value = ;
//command.Parameters["@datetime"].Value=DateTime.Now;
command.ExecuteNonQuery();
conn.Close();
}
catch(Exception ee)
{
Response.Write(ee.ToString()); }*/
}
}
}
Session["userID"]=strUserID;
strContent=(string)Session["content"];
strSubject=(string)Session["subject"];
Session["subject"]=strSubject;
strDt=(string)Session["Datetime"];这一段,很奇怪的代码,另外,你的userID在哪里往Session加进去的
Session["userID"]=strUserID;
strSubject="你要的值”
Session["subject"]=strSubject;
你原来的代码并没有赋值,我想你应该不会在gloable里面赋值把,一般应该在你的登录业面赋值!
在page_load()里可以读出session的值的.
那一段怪的代码是我测试了一下,我想看看session里的值,读出后是不是就没了,要重新加入