痛苦几天的一段代码:真的不知道原因出在什么地方,请各路高手赐教!
我在GridView里面添加一个hyperlink,点击hyperlink要求显现详细信息
显示错误的信息:string sqlstr = "select USERID,UserName,UserPwd,RealName,Sex from customers where USERID='" + Request["USERID"].ToString() + "'"
我不知道这错在什么地方了调试时的错误信息:
使用“new”关键字创建对象实例
在调用方法前通过检查确定对象是否为空
获取此异常的常规帮助
以下是我的写的代码:GridView页面内的代码:Default1.aspx.csusing System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection con = new SqlConnection("server=(local);user id=sa;pwd=;DataBase=martin");
con.Open();
SqlCommand com = new SqlCommand("select USERID,UserName,UserPwd,RealName,Sex from customers",con);
com.ExecuteNonQuery();
SqlDataAdapter ada = new SqlDataAdapter("select * from customers", con);
DataSet ds = new DataSet();
ada.Fill(ds);
con.Close();
} }
}点击hyperlink显示详细信息的页面的代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection con = new SqlConnection("server=(Local);user id=sa;pwd=;DataBase=martin");
con.Open();
string sqlstr = "select USERID,UserName,UserPwd,RealName,Sex from customers where USERID='" + Request["USERID"].ToString() + "'";
SqlDataAdapter myAapter = new SqlDataAdapter(sqlstr, con);
DataSet myDS = new DataSet();
myAapter.Fill(myDS,"customers");
DataRowView rowView = myDS.Tables["customers"].DefaultView[0];
TextBox1.Text = Convert.ToString(rowView["USERID"]);
TextBox2.Text = Convert.ToString(rowView["UserName"]);
TextBox3.Text = Convert.ToString(rowView["UserPwd"]);
TextBox4.Text = Convert.ToString(rowView["RealName"]);
TextBox5.Text = Convert.ToString(rowView["Sex"]);
con.Close(); } }
}错误提示:未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 20: SqlConnection con = new SqlConnection("server=(Local);user id=sa;pwd=;DataBase=martin");
行 21: con.Open();
行 22: string sqlstr = "select USERID,UserName,UserPwd,RealName,Sex from customers where USERID='" + Request["USERID"].ToString() + "'";
行 23: SqlDataAdapter myAapter = new SqlDataAdapter(sqlstr, con);
行 24: DataSet myDS = new DataSet();
源文件: e:\martiin\codeItem\WebSite7\Default2.aspx.cs 行: 22 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
Default2.Page_Load(Object sender, EventArgs e) in e:\martiin\codeItem\WebSite7\Default2.aspx.cs:22
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +31
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +68
System.Web.UI.Control.OnLoad(EventArgs e) +88
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3035
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版
本:2.0.50727.42
我在GridView里面添加一个hyperlink,点击hyperlink要求显现详细信息
显示错误的信息:string sqlstr = "select USERID,UserName,UserPwd,RealName,Sex from customers where USERID='" + Request["USERID"].ToString() + "'"
我不知道这错在什么地方了调试时的错误信息:
使用“new”关键字创建对象实例
在调用方法前通过检查确定对象是否为空
获取此异常的常规帮助
以下是我的写的代码:GridView页面内的代码:Default1.aspx.csusing System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection con = new SqlConnection("server=(local);user id=sa;pwd=;DataBase=martin");
con.Open();
SqlCommand com = new SqlCommand("select USERID,UserName,UserPwd,RealName,Sex from customers",con);
com.ExecuteNonQuery();
SqlDataAdapter ada = new SqlDataAdapter("select * from customers", con);
DataSet ds = new DataSet();
ada.Fill(ds);
con.Close();
} }
}点击hyperlink显示详细信息的页面的代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection con = new SqlConnection("server=(Local);user id=sa;pwd=;DataBase=martin");
con.Open();
string sqlstr = "select USERID,UserName,UserPwd,RealName,Sex from customers where USERID='" + Request["USERID"].ToString() + "'";
SqlDataAdapter myAapter = new SqlDataAdapter(sqlstr, con);
DataSet myDS = new DataSet();
myAapter.Fill(myDS,"customers");
DataRowView rowView = myDS.Tables["customers"].DefaultView[0];
TextBox1.Text = Convert.ToString(rowView["USERID"]);
TextBox2.Text = Convert.ToString(rowView["UserName"]);
TextBox3.Text = Convert.ToString(rowView["UserPwd"]);
TextBox4.Text = Convert.ToString(rowView["RealName"]);
TextBox5.Text = Convert.ToString(rowView["Sex"]);
con.Close(); } }
}错误提示:未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 20: SqlConnection con = new SqlConnection("server=(Local);user id=sa;pwd=;DataBase=martin");
行 21: con.Open();
行 22: string sqlstr = "select USERID,UserName,UserPwd,RealName,Sex from customers where USERID='" + Request["USERID"].ToString() + "'";
行 23: SqlDataAdapter myAapter = new SqlDataAdapter(sqlstr, con);
行 24: DataSet myDS = new DataSet();
源文件: e:\martiin\codeItem\WebSite7\Default2.aspx.cs 行: 22 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
Default2.Page_Load(Object sender, EventArgs e) in e:\martiin\codeItem\WebSite7\Default2.aspx.cs:22
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +31
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +68
System.Web.UI.Control.OnLoad(EventArgs e) +88
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3035
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版
本:2.0.50727.42
解决方案 »
- 求助高手:找到的程序集清单定义与程序集引用不匹配
- 关于在后台无法正常关闭showModalDialog的问题
- 问一个非常菜的问题
- window 2000 server 点Windows Update升级后,asp.net里的程序提交按纽点后无反应
- 新手请教有关Radio Button控件
- 如何用DataList控件控制背景色
- 大家来看看我用的AspnetMenu是不是正版,出现这种提示,我如何解决?
- 关于Visual Studio
- 我的VS.NET中C#编辑环境会自动换行,如何改回有左右滚动条?
- DataGrid 的模版列里放了一DropDownList控件 有关数据绑定的问题
- 如何取得TreeView 一点按钮就出错
- 怎么检查数据库里相同的数据
可能USERID没有定义,所以取不到值.
首次加载Request["USERID"].ToString() 为NULL
跟踪下吧
if(Request["USERID"]!=null)
{
}
else
{
respone.end();
}
这样看看是否对了
{
string sqlstr = "select USERID,UserName,UserPwd,RealName,Sex from customers where USERID="+Request["USERID"].ToString();
}
哈,第一行的具体名称忘记了,就是判断空字符串的那个
if(!string.IsNullOrEmpty(Request["USERID"]))
{
//处理你的代码
SqlConnection con = new SqlConnection("server=(Local);user id=sa;pwd=;DataBase=martin");
con.Open();
string sqlstr = "select USERID,UserName,UserPwd,RealName,Sex from customers where USERID='" + Request["USERID"].ToString() + "'";
SqlDataAdapter myAapter = new SqlDataAdapter(sqlstr, con);
DataSet myDS = new DataSet();
myAapter.Fill(myDS,"customers");
DataRowView rowView = myDS.Tables["customers"].DefaultView[0];
TextBox1.Text = Convert.ToString(rowView["USERID"]);
TextBox2.Text = Convert.ToString(rowView["UserName"]);
TextBox3.Text = Convert.ToString(rowView["UserPwd"]);
TextBox4.Text = Convert.ToString(rowView["RealName"]);
TextBox5.Text = Convert.ToString(rowView["Sex"]);
con.Close();
}
还是先检查一下你的hypelink有没有传值吧..
com.ExecuteNonQuery(); //这句有用么?代码冗余
Request.QueryString["USERID"].ToString();
用的时候先判断
再就是不推荐你这种sql语句拼接写法,而且userid如果不是字符类型,没必要加单引号
a.aspx:如:"aspect.aspx?USERID="+userid ; //userid是a.aspx中的一个变量
//如string userid=txtUserName.text;控件txtUserName的值。
b.aspx: 接收 string ss=Request.QueryString["USERID"].Tostring(); //USERID为a.aspx的aspect.aspx?USERID中的USERID。