作者:早问道 平台:vs2012,SQL server 2008R2
C#是设计windows窗体程序的良好语言,基于C#中各式各样封装好的控件,设计程序界面变得很简单!
本文介绍登录信息验证界面的设计,包含数据库的连接!(此模块在大学生毕业设计中常常用到)。
稍微接触过C#窗体设计的朋友,便知道C#的控件很多,直接拖动使用即可,登录界面简单可设计如下:
1.登录界面设计
此模块详细步骤不必多说,许多博客对C#设计窗体入门都有详细说明!拖动相关控件,修改相关属性!只需要label、textBox、以及button三种控件即可。


2.数据库设计
2.1建立数据库
打开SQL server,建立连接有两种方式,windows验证和sql密码验证皆可,为了方便通常选用windows验证。在SQL server中新建数据库People,建立用户信息表peopletable表, 定义两个列,及用户名PEOPLEID和用户密码PEOPLEKEY,属性名自己定义即可,不要用user这种关键词,避免出错。

2.2连接数据库
两种方式,A.利用服务资源管理器连接,点击数据连接,右键添加连接;B.点击菜单栏中的工具,点击连接到数据库,出现如下界面


3.响应事件
双击登录按钮,由于要与数据库相连,必须添加使用Data.sqlClient命名空间

数据类 | 功能 |
---|---|
SqlConnection | 数据连接类,建立连接字符串后,连接数据库,是最常用的数据类 |
SqlCommand | 数据命令类,对数据库中的数据增加、删除、修改时要用到;引用T-SQL语言,常用ExecuteNonQuery() 方法 |
SqlDataReader | 读取数据类,读取数据库中的数据 |
DataSet | 数据集类,理解为数据容器,可脱机 |
SqlDataAdapter | DataSet和 SQL Server之间的桥接器 |
由于数据连接类SqlConnection是数据库连接的重点,建立数据连接字符串是基础,下面是数据连接字符串的详细介绍:
string connectionString = "server=.;database=PEOPLE;integrated security=SSPI";
server是服务器名,可以填(ip地址,计算机名,(local),localhost,以及.也表示本地服务器),它们的作用是一样的; database是建立的数据库名称; integrated security=SSPI表示数据库的登录方式,此方式为windows验证;若为密码验证,则改为uid= ,pwd= ,具体信息如实填写。
在button_click事件中添加如下代码
private void btnLogin_Click(object sender, EventArgs e)
{
//获取输入的用户名和密码信息,方便后面验证
string userid = txtid.Text.ToString();
string password = txtpassword.Text.ToString();
//用户名或密码为空的情况,此处界面中要有label标签显示提示信息
if (userid.Equals("") || password.Equals("")){
lblLoginError.Text="用户名或密码不能为空";
}
//用户名或密码不为空的情况
else{
string connectionString = "server=.;database=PEOPLE;integrated security=SSPI";
SqlConnection SqlCon = new SqlConnection(connectionString); //数据库连接
SqlCon.Open(); //打开数据库
string sql = "Select * from peopletable where PEOPLEID='" + userid + "' and PEOPLEKEY='" + password + "'";//查找用户sql语句
SqlCommand cmd = new SqlCommand(sql,SqlCon);
cmd.CommandType = CommandType.Text;
SqlDataReader sdr;
sdr = cmd.ExecuteReader();
if (sdr.Read()) //从结果中找到
{
//信息验证成功,跳转到主界面frmLogin(自己所建立的界面,用textBox显示验证信息也可,自己灵活设置),关闭登录界面;
//此三行代码常用于实现winform窗体之间的切换;其前两行是必须的
frmMain main = new frmMain();
main.Show();
this.Hide();
}
//输入用户名和密码错误的情况
else
{
lblLoginError.Text="用户名或密码错误,提示";
return;
}
}
4.注册界面
注册界面如下,与登录界面类似,此处未做优化。

private void btnensign_Click(object sender, EventArgs e)
{
//获取输入的用户名
string userID = textsignid.Text.Trim();
//连接数据库
//设置连接字符串
string constr = "server=.;database=PEOPLE;integrated security=SSPI";
SqlConnection mycon = new SqlConnection(constr); //实例化连接对象
mycon.Open();
//新注册的用户是否存在
SqlCommand checkCmd = mycon.CreateCommand(); //创建SQL命令执行对象
string s = "select PEOPLEID from peopletable where PEOPLEID='" + userID + "'";
checkCmd.CommandText = s;
SqlDataAdapter check = new SqlDataAdapter(); //实例化数据适配器
check.SelectCommand = checkCmd; //让适配器执行SELECT命令
DataSet checkData = new DataSet(); //实例化结果数据集
int n = check.Fill(checkData, "register"); //将结果放入数据适配器,返回元祖个数
if (n != 0)
{
lblsignerror.Text = "用户名存在";
textsignid.Text = ""; textsignpsw.Text = "";
}
//确认密码
else if (textensignpsw.Text != textsignpsw.Text) {
lblsignerror.Text = "密码不一致!";
}
else if (textsignid.Text == "" || textsignpsw.Text == "" || textensignpsw.Text == "") {
lblsignerror.Text = "请将信息填完整";
}
else {
//插入数据
string s1 = "insert into peopletable(PEOPLEID,PEOPLEKEY) values ('" + textsignid.Text + "','" + textensignpsw.Text + "')"; //编写SQL命令
SqlCommand mycom = new SqlCommand(s1, mycon); //初始化命令
mycom.ExecuteNonQuery(); //执行语句
mycon.Close(); //关闭连接
mycom = null;
mycon.Dispose(); //释放对象
frmSignok main = new frmSignok();
main.Show();
this.Hide();
this.Close();
}
}
以上就是C#登录注册功能的程序实现,重点理解C#利用数据类进行连接数据库,读取信息。
希望本文能为带来帮助!
