应用程序中的服务器错误。
发表在ASP.NET图书答疑 2012-04-12
是否精华
版块置顶:
“/WebSite4”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 


行 23:     {
行 24: 
行 25:         string sql = "update baseinfo set'%" + Session["key"].ToString() + "%', netname='" + TextBox1.Text+"'";
行 26:         SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CStr"].ToString());
行 27:         SqlCommand com = new SqlCommand(sql, conn);
 

源文件: D:\WebSite4\Default.aspx.cs    行: 25 

堆栈跟踪: 


[NullReferenceException: 未将对象引用设置到对象的实例。]
   _Default.Button1_Click(Object sender, EventArgs e) in D:\WebSite4\Default.aspx.cs:25
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.5448; ASP.NET 版本:2.0.50727.5456 






using System;
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.SqlClient;


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string  i=""+Session ["ID"]+"";//接受ID
        Response.Write(i );//显示要更新的行
    }
    protected void Button1_Click(object sender, EventArgs e)
    {

        string sql = "update baseinfo set'" + Session["key"].ToString() + "', netname='" + TextBox1.Text+"'";//拼装更新语句
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CStr"].ToString());//连接字符串
        SqlCommand com = new SqlCommand(sql, conn);
      
        try
        {
            conn.Open();
           com.ExecuteNonQuery();
        }
        finally
        { conn.Close(); }
        if (com.ExecuteNonQuery()>0)
        { Response.Write("<script language=javascript> alert('更新成功!');location='articlemanager.aspx'</script>");  }
        else
        { Response.Write("<script language=javascript> alert('更新失败!');location='articlemanager.aspx'</script>");  }
    }
}



-------------------------------------------------------------------------------------------------------------------------------------------------
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.SqlClient;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
         if (!IsPostBack)
        {
           
              this .BindData  ();
           
        }
    }

    private void BindData()
    {
        string sql = "select * from baseinfo ";
        //string connstr = System.Configuration.ConfigurationManager.AppSettings["CStr"].ToString();
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CStr"].ToString());
        conn.Open();
        SqlDataAdapter sda = new SqlDataAdapter(sql,conn);
        DataSet ds = new DataSet();
        sda.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind();
        conn.Close();
    }
    
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        Session ["ID"]=this.GridView1.DataKeys[e.NewEditIndex].Value;//通过Session向更新页面传送要更新的行
        Response.Redirect("Default.aspx");
    }
}
分享到:
精彩评论 6
东方_mrkj
学分:0 LV1
2012-04-13
沙发
读者你好:
    分析所提供的代码,问题应该出现在“SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["CStr"].ToString());”或“string sql = "update baseinfo set'%" + Session["key"].ToString() + "%', netname='" + TextBox1.Text+"'";”这两条语句上。进一步分析可能由于“ Session["key"]”或“ConnectionStrings["CStr"]”出现了问题,而导致对象的引用为空,所以,请确认“key”或“CStr”(可查看WEB.config文件)是否正确。
天香姐姐
学分:0 LV1
TA的每日心情
难受
2021-04-07 18:14:26
2012-04-15
板凳
“/WebSite4”应用程序中的服务器错误。
--------------------------------------------------------------------------------

'2' 附近有语法错误。 //选择了2行后出现的问题
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Data.SqlClient.SqlException: '2' 附近有语法错误。

源错误: 


行 30:         {
行 31:             conn.Open();
行 32:            com.ExecuteNonQuery();
行 33:         }
行 34:         finally
 

源文件: D:\WebSite4\Default.aspx.cs    行: 32 

堆栈跟踪: 


[SqlException (0x80131904): '2' 附近有语法错误。]
   System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +1950522
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +4856715
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +194
   System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1121
   System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) +192
   System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) +317
   System.Data.SqlClient.SqlCommand.ExecuteNonQuery() +137
   _Default.Button1_Click(Object sender, EventArgs e) in D:\WebSite4\Default.aspx.cs:32
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +110
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.5448; ASP.NET 版本:2.0.50727.5456 
天香姐姐
学分:0 LV1
TA的每日心情
难受
2021-04-07 18:14:26
2012-04-16
地板
string sql = "update baseinfo set ID='" + Session["ID"].ToString() + "', netname='" + TextBox1.Text+"'";

当数据库移除主键,改成上面语句后,更新成功!
可是数据库不移除主键行不???
小科_mrkj
学分:43 LV2
2012-04-16
4L
读者朋友:
    您好,这个跟主键没有关系,出现你说的这个问题,应该是你的SQL语句写的有问题(可能是标点符号的问题),你可以在这条SQL语句处插入断点,然后运行到这里的时候,把这条SQL语句拷出来,在SQL服务器上执行一下试试能不能正常执行。
天香姐姐
学分:0 LV1
TA的每日心情
难受
2021-04-07 18:14:26
2012-04-18
5L
但是数据库设置主键后

错误: 


行 30:         {
行 31:             conn.Open();
行 32:            com.ExecuteNonQuery();    ←--( 违反了 PRIMARY KEY 约束 'PK_baseinfo'。不能在对象 'dbo.baseinfo' 中插 
                                                   入重复键。语句已终止。)括弧里是提示内容
行 33:         }
行 34:         finally
 

源文件: D:\WebSite4\Default.aspx.cs    行: 32 
天香姐姐
学分:0 LV1
TA的每日心情
难受
2021-04-07 18:14:26
2012-04-19
6L
string sql = "update baseinfo set netname='" + TextBox1.Text+"' where ID=" + Session["ID"].ToString()  ;

更新成功!!
数据库也不用移除主键了!谢谢!!




首页上一页 1 下一页尾页 6 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照