Click here to Skip to main content
15,901,205 members
Please Sign up or sign in to vote.
2.00/5 (1 vote)
See more:
C#
CREATE proc [dbo].[sp_user] 
(
@userid int,
@username varchar(20)
)
as 
begin
 
 
IF exists(select * from tbl_ins where username=@username)  
BEGIN
print 'Username Already exits'
Return 1
END
Else
insert into tbl_ins(userid, username) values(@userid,@username)
return -1
end


The above sp checks the username already exits in the table....

By using the above stored procedure, how to show the alert/ message , suppose the username already exits means in the below code behind file...
C#
protected void Btn_Save_Click(object sender, EventArgs e)
        {

            con.Open();
            cmd = new SqlCommand("sp_user", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@userid", txt_uid.Text);
            cmd.Parameters.AddWithValue("@username", txt_uname.Text);
            cmd.ExecuteNonQuery();
            con.Close();


        }

Kindly help me friends...
Thanks advance...
Posted
Updated 28-Nov-13 18:15pm
v2

Hi,
Try this.
//Change your Stored Procedure
SQL
CREATE proc [dbo].[sp_user] 
    @userid int,
    @username varchar(20),
    @flag int OUTPUT
AS
BEGIN 
    IF EXISTS(SELECT * FROM tbl_ins WHERE username=@username)  
    BEGIN
        SET @flag = -1
    END
    Else
    BEGIN
        INSERT INTO tbl_ins(userid, username) VALUES (@userid,@username)
        SET @flag = 1
    END
END

//Now change your code
C#
protected void Btn_Save_Click(object sender, EventArgs e)
{
    con.Open();
    cmd = new SqlCommand("sp_user", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("@userid", txt_uid.Text);
    cmd.Parameters.AddWithValue("@username", txt_uname.Text);
    SqlParameter text = new SqlParameter("@flag", SqlDbType.Int);
    text.Direction = ParameterDirection.Output;
    cmd.Parameters.Add(text);
    cmd.ExecuteNonQuery();
    con.Close();
    int flagvalue = Convert.ToInt32(text.Value);  //return value
    if(flagvalue == 1)
    {
        // success
    }
    else
    {
        // username already exists. either show in lable or give alert message
    }
}

Hope it helps you.
Thanks.
 
Share this answer
 
Try something like This:
C#
            SqlDataReader dr;
            cmd = new SqlCommand("select * from tbl_ins where username=@username", con);
            dr = cmd.ExecuteReader();
            dr.Read();
            if (dr.HasRows)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('Already exist');", true);
dr.Close();
            }
else
{
//insert  query here
dr.Close();
}
 
Share this answer
 
v2
You can do it by using DataAdapter also

SQL
CREATE proc [dbo].[sp_user] 
(
@userid int,
@username varchar(20)
)
as 
begin
select * from tbl_ins where username=@username  
end



C#
DataSet ds=new DataSet();

cmd = new SqlCommand("sp_user", con);
           cmd.CommandType = CommandType.StoredProcedure;
           cmd.Parameters.AddWithValue("@userid", txt_uid.Text);
           cmd.Parameters.AddWithValue("@username", txt_uname.Text);
 DataAdpater da=new DataAdapter(cmd);
 da.Fill(ds);
int len=ds.Tables[0].Rows.Count;
if(len>0)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('UserName Already Exits');", true);
}

Hope This Helps!!!
 
Share this answer
 
Hi,
I will change it slightly.

SQL
CREATE proc [dbo].[sp_user] 
(
@userid int,
@username varchar(20)
)
as 
begin
 
 
IF exists(select * from tbl_ins where username=@username)  
BEGIN
RAISERROR (16,-1,-1, 'Username Already exits');
Return 1
END
Else
insert into tbl_ins(userid, username) values(@userid,@username)
return -1
end


Now in Code behind:
C#
try {
con.Open();
            cmd = new SqlCommand("sp_user", con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@userid", txt_uid.Text);
            cmd.Parameters.AddWithValue("@username", txt_uname.Text);
            cmd.ExecuteNonQuery();
            con.Close();
}
catch(Exception ex)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('"+ex.Message+"');", true);
}
finally
{
if(con!=null)
{
con.Close();
}
}
 
Share this answer
 
Comments
MuhammadUSman1 30-Nov-13 0:43am    
But here if he got any connectivity error or execution error then it'll also display that Error Message :(
Suvabrata Roy 1-Dec-13 23:26pm    
Yes so you want to eliminate that then use specific exception block

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900