该设计有两处连接数据库:
1.登录时,输入用户名和密码,连接数据库中的Users表,检查是否正确。
2.登录后的界面,连接数据库获取表的信息。
界面
连接数据库代码/操作
1.登录界面,连接数据库检查是否正确
private void button1_Click(object sender, EventArgs e)
{
String username = textBox2.Text.Trim(); //取出用户名
String password = textBox1.Text.Trim(); //取出密码
String myConnString = "Data Source=.;Initial Catalog=school;Persist Security Info=True;User ID=sa;Password=****";//此处省略了我的密码~
//创建数据库连接对象并实例化
SqlConnection sqlConnection = new SqlConnection(myConnString);
sqlConnection.Open();//打开数据库
String sql = "select username,password from Users where Username='" + username + "'and Password='" + password + "'";//SQL查询语句
SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection);//初始化SQL命令对象
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); //执行命令并取出结果
if(sqlDataReader.HasRows) //查询结果存在
{
MessageBox.Show("登录成功!", "Tips", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);//设置弹出对话窗
labelusername.Text = "用户" + username;
Form2 form2 = new Form2();
form2.Show();
this.Hide();//隐藏登录的界面
}
else
{
MessageBox.Show("用户名或密码错误!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
sqlConnection.Close();//关闭数据库连接
}
}
}
Users表:
其中userIdentity用来表示用户身份,为以后分为两个界面做的准备。
其实就是连接数据库检查输入的用户名和密码在表中是否存在对应数据,然后用MessageBox显示弹窗。
2.登录后,显示表中数据,连接数据库实现同步
①插入DataGridView组件,单击右上角小三角
②分别填写服务器名称(.)——身份验证(SQL Sever验证)——填写用户名和密码——选择连接的数据库
③选择数据库连接,这里显示的字符串正是连接数据库的代码用到的字符串。(我的数据库虽然目前不涉及什么大项目,可还算是我的小宝贝,密码是不能随便公诸于世的~)
连接好后可以选择显示哪个表的数据
功能展示
登陆成功:
登陆失败:
登陆成功后的界面:
注意点总结(包含我栽的坑)
1.写SQL语句的字符串时注意加单引号‘’,因为用户名和密码都是字符串。为了避免不必要的错误,每次写好SQL语句字符串的时候,复制粘贴到SQL Sever中试验一下是否可行,结果是否与预想一致。
2.在取文本框中内容时,或者一切用到文本框名称的时候,一定一定要看清文本框的名称!!!,或者直接命名为明显的名字。(我在取用户名和密码文本框中文本时,一个为textBox1,一个为textBox2,就弄反了,结果怎么输入都是错误,把表改了好多遍)
3.连接数据库(重点)
String myConnString = "Data Source=.;Initial Catalog=school;Persist Security Info=True;User ID=sa;Password=****";
//创建数据库连接对象并实例化
SqlConnection sqlConnection = new SqlConnection(myConnString);
sqlConnection.Open();//打开数据库
String sql = "select username,password from Users where Username='" + username + "'and Password='" + password + "'";//SQL查询语句
SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection);//初始化SQL命令对象
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); //执行命令并取出结果
if(sqlDataReader.HasRows) //查询结果存在
{...}
else
{...}
sqlConnection.Close();//关闭数据库连接
sqlConnection —— 数据库连接对象
sqlCommand —— 数据库命令对象
sqlDataReader —— 读取命令对象的查询结果
(以上是我的理解)
4.退出程序
Application.Exit();
5.点击后打开新窗体
Form2 form2 = new Form2();
form2.Show();
this.Hide();//隐藏登录的界面
6.MessageBox的使用
MessageBox.Show("登录成功!", "Tips", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);//设置弹出对话窗
MessageBox.Show("用户名或密码错误!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(显示文本, 对话框标题, 对话框按钮, 图标);
7.【小技巧】设置密码不可见
文本框属性 —— PasswordChar
【心得】我的界面实在是太丑啦!!!以后还要想办法完善,收获颇多,开开心心。