我现在在做类似日志的页面,一些日志点击进入一个具体的页面,是一篇具体的日志,就像校内一样,在这个日志上面不是还有一个删除按钮,点击这个删除按钮,确定以后返回到他的上一级呀,我现在就是删除以后怎么返回要判断,但是不会判断
public partial class MySpace_ViewLogInfo : System.Web.UI.Page
{
    public string strConn;
    protected void Page_Load(object sender, EventArgs e)
    {        Session["username"] = "admin";
        Session["UserId"] = 26;
        strConn = "provider=Microsoft.Jet.Oledb.4.0;Data source=" + Server.MapPath("~/App_Data/CourseWebSite.mdb");
        ads_contentbind();
    }    private void ads_contentbind()
    {
        string strSql;
        strSql = "select * from tb_myspace_daily where daily_id = '" + Request.QueryString["daily_id"].ToString() + "'";/*这是这个页面的主旨,也是数据库中的关键字,是文章的id,下面的内容就是因为删除了这个id,所以会出错,可是又不知道怎么做*/
        OleDbConnection sqlcon = new OleDbConnection(strConn);
        OleDbDataAdapter myda = new OleDbDataAdapter(strSql, strConn);
        DataSet ds = new DataSet();
        sqlcon.Open();
        myda.Fill(ds,"count");
        this.DataList1.DataSource = ds;
        this.DataList1.DataKeyField = "daily_id";
        this.DataList1.DataBind();
        sqlcon.Close();
        //if (ds.Tables["count"].Rows.Count < 1)
        //{
        //    Response.Redirect("~/MySpace/ViewLogInfo.aspx?daily_username='" + Session["username"].ToString() + "'");
        //}方法一
        //string strSql2;
        //strSql2 = "select count(*) from tb_myspace_daily where daily_id='" + Request.QueryString["daily_id"].ToString() + "'";
        //OleDbCommand mycomm = new OleDbCommand(strSql2, sqlcon);
        //int a = (int)mycomm.ExecuteScalar();
        //if (a < 1)
        //{
        //    Response.Redirect("~/MySpace/ViewLogInfo.aspx?daily_username='" + Session["username"].ToString() + "'");
        //}方法二

    }    protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
    {
        string strID;
        strID = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
        string sqlstr = "delete from tb_myspace_daily where daily_id ='" + strID + "'";
        OleDbConnection sqlcon = new OleDbConnection(strConn);
        OleDbCommand sqlcom = new OleDbCommand(sqlstr, sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        ads_contentbind();
    }不论是方法一还是方法二都是错误的,我不知道这句代码是放哪里
方法一
未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 59:     {
行 60:         string strSql;
行 61:         strSql = "select * from tb_myspace_daily where daily_id = '" + Request.QueryString["daily_id"].ToString() + "'";行 62:         OleDbConnection sqlcon = new OleDbConnection(strConn);
行 63:         OleDbDataAdapter myda = new OleDbDataAdapter(strSql, strConn);
 方法二
未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 59:     {
行 60:         string strSql;
行 61:         strSql = "select * from tb_myspace_daily where daily_id = '" + Request.QueryString["daily_id"].ToString() + "'";行 62:         OleDbConnection sqlcon = new OleDbConnection(strConn);
行 63:         OleDbDataAdapter myda = new OleDbDataAdapter(strSql, strConn);
 其实这个内容已经删阶了,只是返回不到上一级页面中去

解决方案 »

  1.   

    你的思路好象有问题,你是进入某个具体的日志的详细页面删除的,如果是这样,你删除完该日志记录后没法再返回你这条记录的详细页了,因为你该条记录已经不存在了,所以会报你所说的那个错误.只能返回到你日志的列表页面.你在你的protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e) 里加个Response.Redirect("日志列表页面地址"),这样就没问题了.
      

  2.   

    回复3楼
    可是我用的是一个linkbutton点击之后,跳出一个小框,问“是否删除”,点确定后才返回到日志列表呀,如果照你这种做法的话那不是没有“是否删阶”这一个环节了。
      

  3.   

    你跳出的这个小框用javascript客户断脚本代码实现,当你点确定后,才会执行你的服务器端代码,也就是protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e) 里的内容.因此,对于你的这个环节不受影响,如果你还有疑问的话,把aspx页面的代码也贴上来吧,那样好帮你
      

  4.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ViewLog.aspx.cs" Inherits="myspace_ViewLog" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>无标题页</title>
        <link href="App_Themes/ViewLog.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="container">
            <div id="mainpage">
                <div id="firstrow">
                    <div id="firstrow_one">
                        <img src="Images/pen.jpg" style="width: 15px; height: 16px" alt="" /></div>
                    <div id="firstrow_two">
                        <asp:Label ID="Label1" runat="server" Text="日志"></asp:Label>
                    </div>
                    <div id="firstrow_three">                    <asp:HyperLink ID="HyperLink3" runat="server" 
                            ImageUrl="~/MySpace/Images/write.jpg" NavigateUrl="~/MySpace/CreateLog.aspx">HyperLink</asp:HyperLink>                </div>
                </div>
                <div id="secondrow">
                    <div id="secondrow_one">
                    </div>
                    <div id="secondrow_two">
                        <asp:Label ID="Label2" runat="server" Text="我的日志"></asp:Label>
                        <asp:Label ID="Label3" runat="server" Text="Label" Visible="false"></asp:Label><%--用于传递session[{"username"]--%>
                    </div>
                    <div id="secondrow_three">
                    </div>
                </div>
                <div id="logcontent">
                    <div id="logleft">
                        <div id="logleft_head">
                            <asp:DataList ID="DataList1" runat="server" DataKeyField="daily_id" DataSourceID="AccessDataSource1"
                                OnItemDataBound="DataList1_ItemDataBound">
                                <ItemTemplate>
                                    <div id="logleft_head1">
                                        <asp:Label ID="Label24" runat="server" Text="当前显示1-8篇/"></asp:Label>
                                        <asp:Label ID="Label25" runat="server" Text="共"></asp:Label><asp:Label ID="Label26"
                                            runat="server" Text="Label"></asp:Label><asp:Label ID="Label27" runat="server" Text="篇"></asp:Label>
                                    </div>
                                </ItemTemplate>
                            </asp:DataList>
                            <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/CourseWebSite.mdb"
                                SelectCommand="SELECT top 1 * FROM [tb_myspace_daily]"></asp:AccessDataSource>
                        </div>
                        <div id="logleftcontent">
                            <asp:DataList ID="DataList2" runat="server" DataKeyField="daily_id" OnDeleteCommand="DataList2_DeleteCommand"
                                OnItemDataBound="DataList2_ItemDataBound">
                                <ItemTemplate>
                                    <div id="logleftcontent1">
                                        <div id="logleftcontent_head">
                                            <div id="logleftcontent_head1">
                                                <asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("daily_title") %>' 
                                                    NavigateUrl='<%# "~/MySpace/ViewLogInfo.aspx?daily_id="+Eval("daily_id") %>'></asp:HyperLink>
                                            </div>
                                            <div id="logleftcontent_head2">
                                                <asp:LinkButton ID="LinkButton1" runat="server">编辑</asp:LinkButton>&nbsp;
                                                <asp:Label ID="Label28" runat="server" Text="|"></asp:Label>
                                                <asp:LinkButton ID="LinkButton2" runat="server" CommandName="delete">删除</asp:LinkButton>
                                                &nbsp;
                                            </div>
                                            <div id="logleftcontent_head3">
                                                <asp:Label ID="Label29" runat="server" Text='<%# Eval("daily_time") %>'></asp:Label>
                                                <asp:Label ID="Label30" runat="server" Text="(分类:"></asp:Label>
                                                <asp:Label ID="Label38" runat="server" Text="Label"></asp:Label>
                                                <asp:Label ID="Label32" runat="server" Text=")"></asp:Label>
                                                <asp:Label ID="Label39" runat="server" Text='<%# Eval("type_id") %>' Visible="false"></asp:Label>
                                            </div>
                                        </div>
                                        <div id="logleftcontent_centent">
                                            <asp:Label ID="Label40" runat="server" Text='<%# Eval("daily_content") %>'></asp:Label>
                                        </div>
                                        <div id="logleftcontent_footer">
                                            <asp:Label ID="Label33" runat="server" Text="阅读:"></asp:Label>
                                            <asp:Label ID="Label34" runat="server" Text="Label"></asp:Label>&nbsp;&nbsp;
                                            <asp:Label ID="Label35" runat="server" Text="|"></asp:Label>&nbsp;&nbsp;
                                            <asp:Label ID="Label36" runat="server" Text="评论:"></asp:Label>
                                            <asp:Label ID="Label37" runat="server" Text="Label"></asp:Label>
                                        </div>
                                    </div>
                                </ItemTemplate>
                            </asp:DataList>
                            <asp:AccessDataSource ID="ads_viewlog" runat="server" DataFile="~/App_Data/CourseWebSite.mdb"
                                SelectCommand="SELECT * FROM [tb_myspace_daily] order by daily_time desc"></asp:AccessDataSource>
                        </div>
                       
                    </div>
                    <div id="logrihgt">
                        <div id="logrighttop">
                        </div>
                        <div id="logrightbody">
                            <div id="logrightbody_text">
                                <asp:Label ID="Label19" runat="server" Text="最近看过我日志的人"></asp:Label>
                            </div>
                            <div id="logrightbody_photo">
                                <div id="logrightbody_smallphoto">
                                    <div id="logrightbody_photopic">
                                        <img src="Images/peoplepic1.jpg" style="width: 50px; height: 51px" alt="" /></div>
                                    <div id="logrightbody_phototext">
                                        <asp:Label ID="Label20" runat="server" Text="曹璐"></asp:Label>
                                    </div>
                                </div>
                            </div>
                            <div id="logrightbody_logrow">
                                <asp:Label ID="Label21" runat="server" Text="日志存档"></asp:Label>
                            </div>
                            <div id="logrightbody_alltime">
                                <div id="logrightbody_timettext">
                                    <asp:Label ID="Label22" runat="server" Text="2009年06月10日"></asp:Label>
                                    <asp:Label ID="Label23" runat="server" Text="(7)"></asp:Label>
                                </div>
                            </div>
                        </div>
                        <div id="logrightdown">
                        </div>
                    </div>
                </div>
            </div>
        </div>
        </form>
    </body>
    </html>
      

  5.   

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.OleDb;public partial class MySpace_ViewLogInfo : System.Web.UI.Page
    {
        public string strConn;
        protected void Page_Load(object sender, EventArgs e)
        {
                Session["username"] = "admin";
                Session["UserId"] = 26;
                string strSql;
                strConn = "provider=Microsoft.Jet.Oledb.4.0;Data source=" + Server.MapPath("~/App_Data/CourseWebSite.mdb");
                strSql = "update tb_myspace_daily set daily_click = daily_click + 1 where daily_id='" + Request.QueryString["daily_id"].ToString() + "'";
                OleDbConnection myConn = new OleDbConnection(strConn);
                OleDbCommand myComm = new OleDbCommand();
                myComm.Connection = myConn;
                myComm.Connection = myConn;
                myComm.CommandText = strSql;
                myConn.Open();
                myComm.ExecuteNonQuery();
                myConn.Close();            ads_contentbind();
                ads_commentarylistbind();
                
        }
        private void ads_contentbind()
        {
            string strSql;
            strSql = "select * from tb_myspace_daily where daily_id = '" + Request.QueryString["daily_id"].ToString() + "'";
            OleDbConnection sqlcon = new OleDbConnection(strConn);
            OleDbDataAdapter myda = new OleDbDataAdapter(strSql, strConn);
            DataSet ds = new DataSet();
            sqlcon.Open();
            myda.Fill(ds,"count");
            this.DataList1.DataSource = ds;
            this.DataList1.DataKeyField = "daily_id";
            this.DataList1.DataBind();
            sqlcon.Close();
            //if (ds.Tables["count"].Rows.Count < 1)
            //{
            //    Response.Redirect("~/MySpace/ViewLogInfo.aspx?daily_username='" + Session["username"].ToString() + "'");
            //}        //string strSql2;
            //strSql2 = "select count(*) from tb_myspace_daily where daily_id='" + Request.QueryString["daily_id"].ToString() + "'";
            //OleDbCommand mycomm = new OleDbCommand(strSql2, sqlcon);
            //int a = (int)mycomm.ExecuteScalar();
            //if (a < 1)
            //{
            //    Response.Redirect("~/MySpace/ViewLogInfo.aspx?daily_username='" + Session["username"].ToString() + "'");
        }
        protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
        {
            string strID;
            strID = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
            string sqlstr = "delete from tb_myspace_daily where daily_id ='" + strID + "'";
            OleDbConnection sqlcon = new OleDbConnection(strConn);
            OleDbCommand sqlcom = new OleDbCommand(sqlstr, sqlcon);
            sqlcon.Open();
            sqlcom.ExecuteNonQuery();
            sqlcon.Close();
            ads_contentbind();        Response.Redirect("~/MySpace/ViewLogInfo.aspx?daily_username='" + Session["username"].ToString() + "'");
        }
        private void ads_commentarylistbind()
        {
            string sqlstr;
            sqlstr = "select * from tb_myspace_dailycontent where daily_id ='" + Request.QueryString["daily_id"].ToString() + "' order by fld_time desc";
            OleDbConnection sqlcon = new OleDbConnection(strConn);
            OleDbDataAdapter myda = new OleDbDataAdapter(sqlstr, sqlcon);
            DataSet ds = new DataSet();
            sqlcon.Open();
            myda.Fill(ds, "sqlstr");
            this.DataList2.DataSource = ds;
            this.DataList2.DataKeyField = "fld_id";
            this.DataList2.DataBind();
            sqlcon.Close();
        }
        protected void DataList2_DeleteCommand(object source, DataListCommandEventArgs e)
        {
            string strID;
            strID = DataList2.DataKeys[e.Item.ItemIndex].ToString();//获取当前DataList控件列
            string sqlstr = "delete from tb_myspace_dailycontent where daily_id ='" + Request.QueryString["daily_id"].ToString() + "' and fld_id =" + strID;
            OleDbConnection sqlcon = new OleDbConnection(strConn);
            OleDbCommand sqlcom = new OleDbCommand(sqlstr, sqlcon);
            sqlcon.Open();
            sqlcom.ExecuteNonQuery();
            sqlcon.Close();
            ads_commentarylistbind();
        }
        protected void DataList2_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            ((LinkButton)e.Item.Controls[0].FindControl("LinkButton3")).Attributes.Add("onclick", "return confirm('确定要删除吗?')");
        }
        //protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e)
        //{
        //    Response.Write("<script language=javascript>window.location.href=window.location.href;</script>");
        //}
        protected void Button1_Click(object sender, EventArgs e)
        {
            string strSql, strtb;
            strtb = TextBox1.Text;
            strSql = "insert into tb_myspace_dailycontent (daily_id,fld_time,Username,fld_content) values ('" + Request.QueryString["daily_id"].ToString() +"',#" + DateTime.Now.ToString() + "#,'"+ Session["username"].ToString() +"','" + strtb.ToString() + "')";
            OleDbConnection myConn = new OleDbConnection(strConn);
            OleDbCommand myComm = new OleDbCommand(strSql, myConn);
            myConn.Open();
            myComm.ExecuteNonQuery();
            myConn.Close();
            Response.Write("<script> alert ('评论成功!')</script>");
        }
    }
      

  6.   

    我在protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e) 中加了一句你说要返回到上级目录的一句话,就是最后面的:Response.Redirect("~/MySpace/ViewLogInfo.aspx?daily_username='" + Session["username"].ToString() + "'"); 
    可是出现错误,错误如下:
    未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 22:             string strSql;
    行 23:             strConn = "provider=Microsoft.Jet.Oledb.4.0;Data source=" + Server.MapPath("~/App_Data/CourseWebSite.mdb");
    行 24:             strSql = "update tb_myspace_daily set daily_click = daily_click + 1 where daily_id='" + Request.QueryString["daily_id"].ToString() + "'";行 25:             OleDbConnection myConn = new OleDbConnection(strConn);
    行 26:             OleDbCommand myComm = new OleDbCommand();
      

  7.   

     string strSql; 
    行 23:            strConn = "provider=Microsoft.Jet.Oledb.4.0;Data source=" + Server.MapPath("~/App_Data/CourseWebSite.mdb"); 
    行 24:            strSql = "update tb_myspace_daily set daily_click = daily_click + 1 where daily_id='" + Request.QueryString["daily_id"].ToString() + "'";行 25:  你在strSql = "update tb_myspace_daily set daily_click = daily_click + 1 where daily_id='" + Request.QueryString["daily_id"].ToString() + "'";之前输出一下Request.QueryString["daily_id"],代码如下:
    string strSql;            
    strConn = "provider=Microsoft.Jet.Oledb.4.0;Data source=" + Server.MapPath("~/App_Data/CourseWebSite.mdb"); 
    Response.Write(Request.QueryString["daily_id"]); //注意:你这里是Request.QueryString["daily_id"],后边没有.ToString()response.End();
    strSql = "update tb_myspace_daily set daily_click = daily_click + 1 where daily_id='" + Request.QueryString["daily_id"].ToString() + "'";
    你就会发现你问题的所在了,你什么也没输出,即你的 Request.QueryString["daily_id"]对象为null。这也就是你出“System.NullReferenceException: 未将对象引用设置到对象的实例”错误的原因,还有一个问题,就是你是进入日志详细页面删除该日志呢,还是该日志下边的回复记录。如果是该日志的话,那么删除完,返回上一级的应该是该用户的所有日志列表,而代码strSql = "update tb_myspace_daily set daily_click = daily_click + 1 where daily_id='" + Request.QueryString["daily_id"].ToString() + "'";是应该放在日志的详细页面的。当客户每次访问该页面时,会给点击数自动加1.