【发布时间】:2014-02-17 06:43:50
【问题描述】:
我有一个管理员用户..当管理员添加管理员主管并将指定主管和部门设置为计算机科学时..然后当管理员再次添加帐户并尝试添加管理员并设置他的指定主管和部门计算机科学然后在这里我想显示错误“指定已经存在”..因为每个部门都有一位主管,一位经理和一位高级经理..不是多个主管,经理 我试试这个 sp 和代码.. sp
ALTER procedure [dbo].[spadmindesig]
@DesigID int
as
if exists(select * from Designation where DesigID=@DesigID)
return -1
else
return 1
对于管理员注册
ALTER procedure [dbo].[spadminreg]
@UserName nvarchar(50),
@Password nvarchar(50),
@UserTypeID int,
@DepID int,
@DesigID int,
@emailaddress nvarchar(50),
@PhoneNumber nvarchar(50)
as
if EXISTS(SELECT 1 from Designation where DesigID=@DepID)
begin
select @DesigID as 'SuperVisor'
end
else if EXISTS (select 2 from Designation where DesigID=@DesigID)
begin
select @DesigID as 'Manager'
end
else if EXISTS (select 3 from Designation where DesigID=@DesigID)
begin
select @DesigID as 'Senior Manager'
end
else
if exists(select * from Designation where DesigID=@DesigID)
return -1
else
return 1
insert into [Userss](UserName,Password,UserTypeID,DepID,CreateDate,DesigID,Email ,PhoneNumber)
values
(@UserName,@Password,@UserTypeID,@DepID,GETDATE(),@DesigID,@emailaddress,@PhoneNumber)
代码
public void AdminSignUp(string Username, string Password, int UserTypeID, int DepID, int desigid, string emailaddress, string PhoneNumber)
{
db.ExecuteScalar("spadminreg", new object[] { Username, Password, UserTypeID, DepID, desigid, emailaddress, PhoneNumber });
}
public string Admindes( int desigid)
{
string val=db.ExecuteScalar("spadmindesig", new object[] { desigid }).ToString();
return val;
}
按钮代码
protected void Btn_SignUp_Click(object sender, EventArgs e)
{
try
{
//test
//value = adminsignup.Admindes(Convert.ToInt32(DropDownList2.SelectedValue));
string val= adminsignup.Admindes(Convert.ToInt32(DropDownList2.SelectedValue));
if(val=="1")
{
adminsignup.AdminSignUp(nametxt.Value, passtxt.Value, Convert.ToInt32(DropDownList1.SelectedValue), Convert.ToInt32(DropDownList2.SelectedValue), Convert.ToInt32(DropDownList3.SelectedValue), mailtxt.Value, numbtxt.Value);
//GridView1.DataSource=ca.viewadmin();
Lbe6.Visible = true;
Lbe6.Text = ("Designation Already Exists.");
// GridView1.DataBind();
}
else
{
lbe5.Visible = true;
lbe5.Text = ("");
}
}
catch
{
lbe5.Visible = true;
lbe5.Text = ("SIGNUP FAILED.PLEASE TRY AGAIN");
}
nametxt.Value = "";
passtxt.Value = "";
mailtxt.Value = "";
numbtxt.Value = "";
}
主管帐户存在于表中,当我添加主管帐户并设置相同的指定和部门时,它会显示错误“注册失败”,我想显示错误“指定已存在”,当我从表中删除现有主管帐户时然后我再次添加主管帐户,然后它显示错误..
object reference not set to an instance of an object
【问题讨论】:
-
最常见的原因是某些对象或数组索引不存在,尝试设置调试点,以便您逐步了解发生了什么(设置调试点,使用 F10 或 F11键一步步移动)
-
请包括完整的堆栈跟踪,包括行号 - 并指出这些行引用的代码中的哪些行。
-
为什么将
ExecuteScalar的结果转换为字符串,然后将该值与"1"进行比较 - 只需将其作为整数返回或更好,然后将结果的比较结果返回到1并返回比较的布尔结果。 -
NullReferenceException的几乎所有情况都是相同的。请参阅“What is a NullReferenceException in .NET?”获取一些提示。
标签: c# asp.net nullreferenceexception