--转到Master数据库
Use Master
Go
--检查ForCSharp数据库师傅存在 存在则删除
If exists(Select * from sysdatabases where name=( ' ForCSharp ' )
Drop database ForCSharp
Go
--创建数据库
Create Database ForCSharp
Go
--转到新建的数据库
Use ForCSharp
Go
/*
创建登录信息表 注意:密码字段坚决回避char类型,使用Varchar.
*/
Create Table Login
(
vUserName varchar(12) NOT NULL constraint PK_Login_vUser Primary Key,
vPassword varchar(20) NOT NULL
)
Go
--插入一行测试数据
Insert into Login values ( ' pengpeng ' , ' ceshimima ' )
Go
--创建存储过程 注意两个参数的类型,长度,应该和表结构一致
--只有返回Y的时候代表正确,其他情况都代表登录失败
-----------------------存储过程开始----------------------
Create Proc prjcheckUser
@vUser varchar(12) ,@vPwd varchar(20)
As
begin
--如果用户不存在
if exists( select * from Login where vUserName=@vUser )
begin
if exists( select * from Login where vUserName=@vUser and vPassword=@vPwd )
select ' y '
else
select ' 用户 ' +@vSuer+ ' 的密码不正确'
end
else
begin
select ' 用户' +@vUser+ ' 不存在 '
end
End
Go
-----------------存储过程结束-----------------
下边是程序代码
//登录按钮
private void button1_Click(object sender, EventArgs e)
{
string ConnString ="server=.;database=ForCSharp;uid=sa;pwd=";
//验证登陆时,执行SQLServer存储过程返回的结果
string sReturn = null;
//定义相关对象
SqlConnection conn = null;
SqlCommand cmd= null;
//实例化对象
conn = new SqlConnection(ConnString);
cmd = new SqlCommand("prhCheckUser", conn);
//尝试打开连接
try
{
conn.Open();
}
catch (SqlException err)
{
MessageBox.Show(this, "连接到数据库出现错误./r/n" + err.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
//说明要执行存储过程
cmd.CommandType = CommandType.StoredProcedure;
//定义第1个输入参数;数据类型和长度,赋值 说明是输入参数
cmd.Parameters.Add(new SqlParameter("@vUser", SqlDbType.VarChar, 12));
cmd.Parameters ["@vUser"].Value = txtUser.Text;
cmd.Parameters["@vUser"].Direction = ParameterDirection.Input;
//定义第2个输入参数;数据类型和长度,赋值 说明是输入参数
cmd.Parameters.Add(new SqlParameter("@vPwd", SqlDbType.VarChar, 20));
cmd.Parameters["@vPwd"].Value = txtPwd.Text;
cmd.Parameters["@vPwd"].Direction = ParameterDirection.Input;
try
{
//执行存储过程
SqlDataReader r = cmd.ExecuteReader();
//获取数据
r.Read();
sReturn = r.GetString(0);
}
catch (Exception err)
{
MessageBox.Show(this, "执行存储过程出现错误./r/n" + err.ToString(), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
//根据返回值的不同。显示不同的结果
if (sReturn == "y")
MessageBox.Show(this, "您已成功登录", "SUCC", MessageBoxButtons.OK, MessageBoxIcon.Information );
else
MessageBox.Show(this, sReturn +"!", "输入有误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
//退出按钮
private void btnCancel_Click(object sender, EventArgs e)
{
Application.Exit();
}