您的位置:首页 > 其它

使用存储过程检测用户名是否存在

2007-10-24 21:36 337 查看
1:先说个用SqlDataReader的方法:代码简单没什么好说的了




protected void Button1_Click(object sender, EventArgs e)




...{


string user = TextBox1.Text.ToString().Trim();


SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["girdviewConnectionString"].ConnectionString);




SqlCommand cmd = new SqlCommand("select aa from a where aa='" + user + "'", con);


con.Open();




SqlDataReader dr= cmd.ExecuteReader();


if (!dr.HasRows)




...{


Label2.Text = "没有此用户名";


TextBox1.Text = "";


}


if (dr.HasRows)




...{


ClientScriptManager cs = this.ClientScript;


cs.RegisterStartupScript(this.GetType(), "1", "<script>alert ('登陆成功!')</script>");


Label2.Text = "";


}




}

2:用存储过程:
注:
1.在储存过程里声明一个@count是output的,在使用时sqlcommand对象也要增加一个@count是SqlDbType.Int类型:

cmd.Parameters.Add("@count", SqlDbType.Int);
cmd.Parameters["@count"].Direction = ParameterDirection.Output;

2.得到存储过程的值: Convert.ToInt32(cmd.Parameters["@count"].Value);


protected void Button1_Click(object sender, EventArgs e)




...{


string user = TextBox1.Text.ToString().Trim();


SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["girdviewConnectionString"].ConnectionString);


SqlCommand cmd = new SqlCommand("selectuser",con);


cmd.CommandType = CommandType.StoredProcedure;


con.Open();


cmd.Parameters.Add("@count", SqlDbType.Int);


cmd.Parameters["@count"].Direction = ParameterDirection.Output;


int result = Convert.ToInt32(cmd.Parameters["@count"].Value);


if (result > 0)




...{


ClientScriptManager cs = this.ClientScript;


cs.RegisterStartupScript(this.GetType(), "1", "<script>alert ('登陆成功!')</script>");


Label2.Text = "";


}


else




...{


Label2.Text = "没有此用户名";


TextBox1.Text = "";




} 存储过程是:

ALTER PROCEDURE selectuser

(

@count int OUTPUT
)

AS
SET NOCOUNT ON
select @count =count(*) from a
return @count
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: