登录窗口界面:
内部逻辑实现:
/// <summary>
/// 登录事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button1_Click(object sender, EventArgs e)
{
//获取界面信息
string name = txtName.Text;//用户名
string pwd = this.txtPwd.Text;//密码
//第一步:创建数据库连接对象 ADO.NET
SqlConnection conn = new SqlConnection("server=本机IP地址;uid=用户名;pwd=密码;database=数据库名;");//定义数据库连接实例
//第二步,打开数据库连接
conn.Open();
//构建存储过程的输入参数,并且给参数赋值
//参数的名称必须和定义存储过程的输入参数名称完全相同
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@name", name),
new SqlParameter("@pwd", pwd)
};
string sql = "select count(1) from userinfos where name = @name and pwd = @pwd";//定义一个数据库操作指令
//string sql = string.Format("select count(1) from userinfos where name = '{0}' and pwd = '{1}'", name, pwd);//传值
//string sql = "$select count(1) from userinfos where name = {name} and pwd = '{pwd}'"; 错误示例!!
//第三步:创建执行脚本的对象
SqlCommand command = new SqlCommand(sql, conn);//执行数据库查询指令
//将参数和命令对象的参数集合绑定
command.Parameters.AddRange(paras);//添加多个SQLParameter时,用AddRange比较方便
//第四步:执行脚本
int result = (int)command.ExecuteScalar();//查询返回第一行第一列
if(result > 0)
{
//显示好友列表
FriendForm ff = new FriendForm();
ff.Show();
//this.Hide();//隐藏
//登录界面隐藏
this.Visible = false;
//MessageBox.Show("登录成功!");
}
else
{
MessageBox.Show("登录失败!");
}
//第五步:关闭连接对象
conn.Close();
//command.ExecuteNonQuery();//查询返回第一行第一列
//command.ExecuteReader();//查询返回多行多列
}
/// <summary>
/// 关闭按钮事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button2_Click(object sender, EventArgs e)
{
this.Close();//关闭当前窗口
//Application.Exit();//关闭整个应用程序
}
数据库表userinfos
好友列表