源错误: 
行 20:         myConn = new SqlConnection(news_dns);
行 21: 
行 22:         string newsid = Request.QueryString["id"].ToString();
行 23:         string sql_string = "update news set news_hit_num=news_hit_num+1 where news_id=" + newsid;
行 24:         SqlCommand myCmd = new SqlCommand(sql_string, myConn);
 源文件: d:\021\newscontent.aspx.cs    行: 22 堆栈跟踪: 
[NullReferenceException: 未将对象引用设置到对象的实例。]
   newscontent.Page_Load(Object sender, EventArgs e) in d:\021\newscontent.aspx.cs:22
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
   System.Web.UI.Control.OnLoad(EventArgs e) +73
   System.Web.UI.Control.LoadRecursive() +52
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2184 这是那段代码
       string news_dns = Convert.ToString(ConfigurationManager.ConnectionStrings["ConnectionString"]);
        myConn = new SqlConnection(news_dns);        string newsid = Request.QueryString["id"].ToString();
        string sql_string = "update news set news_hit_num=news_hit_num+1 where news_id=" + newsid;
        SqlCommand myCmd = new SqlCommand(sql_string, myConn);
        myConn.Open();
        myCmd.ExecuteNonQuery();
        myConn.Close();
 
还有一个错误:System.Data.SqlClient.SqlException: 第 1 行: '=' 附近有语法错误
源错误: 
行 43:         SqlDataAdapter myAdap2 = new SqlDataAdapter(sql_string, myConn);
行 44:         DataSet myds2 = new DataSet();
行 45:         myAdap2.Fill(myds2, "文档表");
行 46:         GridView1.DataSource = new DataView(myds2.Tables[0]);
行 47:         GridView1.DataBind();
 源文件: d:\021\writer.aspx.cs    行: 45 堆栈跟踪: 
[SqlException (0x80131904): 第 1 行: '=' 附近有语法错误。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +109
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +57
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +207
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2433
   System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
   System.Data.SqlClient.SqlDataReader.get_MetaData() +80
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +291
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +949
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +242
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +20
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +129
   System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +10
   System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +10
   System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +128
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +141
   System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +91
   writer.Page_Load(Object sender, EventArgs e) in d:\021\writer.aspx.cs:45
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
   System.Web.UI.Control.OnLoad(EventArgs e) +73
   System.Web.UI.Control.LoadRecursive() +52
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2184 代码为:
        string userid;
        if (Session["userid"] != null)
        {
            userid = Session["userid"].ToString();
        }
        else
        {
            userid = "";
        }
        sql_string = "select news_id,news_date,news_title,news_hit_num,(class.class_name) as className from news,class where news.news_class=class.class_id and news_author=" + userid;
        SqlDataAdapter myAdap2 = new SqlDataAdapter(sql_string, myConn);
        DataSet myds2 = new DataSet();
        myAdap2.Fill(myds2, "文档表");
        GridView1.DataSource = new DataView(myds2.Tables[0]);
        GridView1.DataBind(); 

解决方案 »

  1.   

    Request.QueryString["id"]==null?"":Request.QueryString["id"].ToString();
      

  2.   

     Request.QueryString["id"].ToString();
    Request.QueryString["id"]为空时不能用ToString()
      

  3.   

    string newsid = Request.QueryString["id"].ToString();
    这个在使用前先判断是否为空
      string sql_string = "update news set news_hit_num=news_hit_num+1 where news_id=" + newsid;
     SqlCommand myCmd = new SqlCommand(sql_string, myConn);SqlDataAdapter myAdap2 = new SqlDataAdapter(sql_string, myConn);
    用SqlDataAdapter myAdap2 = new SqlDataAdapter(myCmd);
      

  4.   

    行 43: SqlDataAdapter myAdap2 = new SqlDataAdapter(sql_string, myConn);
    行 44: DataSet myds2 = new DataSet();
    行 45: myAdap2.Fill(myds2, "文档表");
    行 46: GridView1.DataSource = new DataView(myds2.Tables[0]);
    行 47: GridView1.DataBind();行46 把 new DataView(myds2.Tables[0])改成  myds2.Tables[0];
      

  5.   

    string newsid ="";
    if(Request.QueryString["id"]!=null)
    {
      newsid = Request.QueryString["id"].ToString();
    }
       
      

  6.   

    取request.QueryString值之前判断是否取到了,即判断是否为空
      

  7.   

    if(Request.QueryString["id"]!=null)
    {
      string str = Request.QueryString["id"].ToString();
    }
      

  8.   

    都是因为不会调试,而且sql语句的查询错误