public partial class Register : System.Web.UI.Page
{
string sqlconn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(sqlconn);
string name = this.TextBox1.Text.Trim();
string sqltext = "select * from loginuser where username='" + name + "'";
SqlCommand comm = new SqlCommand(sqltext,conn);
conn.Open();
SqlDataReader datard = comm.ExecuteReader();
if (datard.Read() == true)
{
datard.Close();
this.textboxstate.Text = "注册失败:已有该用户名!";
conn.Close(); }
else
{
datard.Close();
sqltext = "insert into loginuser(username,userpwd,sex,entertime)"
+ "values('"
+ name + "','"
+ this.TextBox2.Text.Trim() + "','"
+ this.RadioButtonList1.SelectedItem.Text + "','"
+ DateTime.Now.ToString() + "')";
comm = new SqlCommand(sqltext,conn);
comm.ExecuteNonQuery();
conn.Close();
Session["usrename"] = name;
Response.Redirect("main.aspx");
}
}
--------------------------------------------------------------------------------未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误:
行 34: {
行 35: datard.Close();
行 36: sqltext = "insert into loginuser(username,userpwd,sex,entertime)"
行 37: + "values('"
行 38: + name + "','"
源文件: f:\简易论坛\web\Register.aspx.cs 行: 36 堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
Register.Button1_Click(Object sender, EventArgs e) in f:\简易论坛\web\Register.aspx.cs:36
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
是这样的错
你aspx的相关代码也贴下看看比如RadioButtonList1的赋值操作
+ "values('"
+ name + "','"
+ this.TextBox2.Text.Trim() + "','"
+ this.RadioButtonList1.SelectedItem.Text + "','"
+ DateTime.Now.ToString() + "')";
改成下面试试能不能通过:
sqltext = "insert into loginuser(username,userpwd,sex,entertime)"
+ "values('"
+ name + "','"
+ this.TextBox2.Text.Trim() + "','"
+ this.RadioButtonList1.SelectedItem==null?"":this.RadioButtonList1.SelectedItem.Text+ "','"
+ DateTime.Now.ToString() + "')";
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;public partial class Register : System.Web.UI.Page
{
string sqlconn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString; protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(sqlconn);
string name = this.TextBox1.Text.Trim();
string sqltext = "select * from loginuser where username='" + name + "'";
SqlCommand comm = new SqlCommand(sqltext,conn);
conn.Open();
SqlDataReader datard = comm.ExecuteReader();
if (datard.Read() == true)
{
datard.Close();
this.textboxstate.Text = "注册失败:已有该用户名!";
conn.Close(); }
else
{
datard.Close();
sqltext = "insert into loginuser(username,userpwd,sex,entertime)"
+ "values('"
+ name + "','"
+ this.TextBox2.Text.Trim() + "','"
+ this.RadioButtonList1.SelectedItem.Text + "','"
+ DateTime.Now.ToString() + "')";
comm = new SqlCommand(sqltext,conn);
comm.ExecuteNonQuery();
conn.Close();
Session["usrename"] = name;
Response.Redirect("main.aspx");
}
}
}