【C#链接数据库】用command和Connection实现系统登录界面
来源:互联网 发布:网站模板源码免费下载 编辑:程序博客网 时间:2024/05/20 23:31
练习1:用command和Connection实现系统登录界面
问题
一般的程序都需要登录后才能使用,登录时应提供用户名、密码和身份类型。
说明
本程序采用SqlServer做为数据库。数据库中有一张表名为:recordInfo,用来记录注册用户的信息;表中有3个字段,分别是id(用户名),pwd(密码),type(类型)。
分析
首先使用以下命名空间:
using System.Data;
using System.Data. SqlClient;
用以下方式创建Connection和Command对象,以便在.NET中操作SqlServer数据库。
// 创建Connection 对象
stringconnString = "Data Source=.;Initial Catalog=MySchool;UserID=sa;pwd=sa";
SqlConnection connection = new SqlConnection(connString);
// 创建Command 对象
SqlCommand command = new SqlCommand(sql, connection);
由于返回的是记录数,所以使用Command对象的ExecuteScalar ()方法执行该命令。
解决方案:
(1)在SqlServer中创建“MySchool”数据库。添加一个表名为recordInfo的新表,添加3列:id(用户名),pwd(密码),type(类型)。
(2)向新表recordInfo中添加几行示例数据。
(3)打开VisualStudio .NET 2005 IDE并新建一个名为ConnectStr的Windows应用程序项目。
(4)将Form1.cs文件重命名为LoginForm.cs。
(5)拖动工具箱中的控件,设计如图所示的窗体。
(6)添加两个按钮的Click事件,程序代码如下:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;//添加名空间using System.Data;using System.Data.SqlClient;namespace ConnectStr{ public partial class LoginForm : Form { //定义LoginForm全局变量 string name; string type; public LoginForm() { InitializeComponent(); } private void label2_Click(object sender, EventArgs e) { } private void btnLogIn_Click(object sender, EventArgs e) { bool isValidUser = false; // 标识是否为合法用户 // 如果验证通过,就显示相应的用户窗体,并将当前窗体设为不可见 if (ValidateInput()) { // 调用用户验证方法 isValidUser = ValidateUser(cboLogInType.Text,txtLogInId.Text,txtLogInPwd.Text); // 如果是合法用户,显示相应的窗体 if (isValidUser) { // 将输入的用户名保存到全局变量中 name = txtLogInId.Text; // 将选择的登录类型保存到全局变量中 type = cboLogInType.Text; ShowUserForm(); // 显示相应用户的主窗体 } } } // 验证用户是否进行了输入和选择 private bool ValidateInput() { if (txtLogInId.Text.Trim() == "") { MessageBox.Show("请输入用户名", "输入提示", MessageBoxButtons.OK,MessageBoxIcon.Information); txtLogInId.Focus(); return false; } else if (txtLogInPwd.Text.Trim() == "") { MessageBox.Show("请输入密码", "输入提示", MessageBoxButtons.OK,MessageBoxIcon.Information); txtLogInPwd.Focus(); return false; } else if (cboLogInType.Text.Trim() == "") { MessageBox.Show("请选择登录类型", "输入提示", MessageBoxButtons.OK,MessageBoxIcon.Information); cboLogInType.Focus(); return false; } else { return true; } } // 验证用户输入的用户名和密码是否正确 // 验证的结果有两种情况:通过和不通过,返回值为布尔型 // 不通过的原因可能有多种,在方法的参数中的message字符串,用以标识不通过的情况 public bool ValidateUser(string loginType, string loginId, string loginPwd) { // 创建Connection 对象 string connString = "Data Source=.;Initial Catalog=MySchool;User ID=sa;pwd=han123"; SqlConnection connection = new SqlConnection(connString); int num = 0; // 选员信息的数量 // 查询用的SQL 语句 string sql = "SELECT COUNT(*) FROM recordInfo where id='" + loginId + "' and pwd = '" + loginPwd + "' and type = '" + loginType + "'"; bool isExist = false; try { connection.Open();// 打开数据库连接 // 创建Command 对象 SqlCommand command = new SqlCommand(sql, connection); // 执行SQL 查询 num = (int)command.ExecuteScalar(); if (num > 0) { isExist = true; } else { MessageBox.Show("数据库中无此记录!", "提示信息", MessageBoxButtons.OK,MessageBoxIcon.Information); } } catch (Exception ex)//也可根据ex值判断错误 { // 操作出错 MessageBox.Show("连接数据库出错!"); } finally { // 关闭数据库连接 connection.Close(); } return isExist; } // 根据登录类型,显示相应的窗体 public void ShowUserForm() { MessageBox.Show("欢迎使用该系统:" + type + name); } private void btnCancel_Click(object sender, EventArgs e) { Application.Exit(); } }}
(7)保存并构建应用程序。执行应用程序,以验证其工作情况。运行效果如图所示:
登录界面图
=======================================================================
1.控件属性的学习积累
登陆界面输入密码textbox PasswordChar
下拉框combobox只能选择不能输入DropDownStyle->DropDownList
=========================================================================
2.对.Designer.cs的理解
designer.cs 是窗体设计器生成的代码文件,作用是对窗体上的控件做初始化工作(在函数InitializeComponent()中)
VS2003以前都把这部分代码放到窗体的cs文件中,但是这部分代码一般不用手工修改。
VS2005以后把它单独分离出来形成一个designer.cs文件与窗体对应,这样cs文件中剩下的代码都是与程序功能相关性较高的代码利于维护。
- 【C#链接数据库】用command和Connection实现系统登录界面
- 模拟数据库,实现注册和登录界面(偏好设置)
- Android客户端之“微服私访”App的系统学习(二)TextInputLayout实现登录界面和LitePal初始化本地数据库
- 用C#连接Access数据库做登录界面
- 用C#来写一个管理系统的登录界面
- 【C#】C#连接数据库实现登录系统的功能
- VB\数据库--模拟系统登录界面
- thinkphp5 数据库 链接 Connection
- 用C#做登录界面
- C# 实现简单的登录界面
- 简单的利用数据库实现登录界面
- java 链接数据库实现登录验证
- CSS 实现 系统登录界面 (一)
- CSS 实现 系统登录界面 (二)
- 图书管理系统之登录界面实现
- 系统登录界面代码实现--Java
- C语言链接mysql数据库,实现可以增删改查的角色权限登录系统
- ADO.NET 使用Connection对象连接数据库实现用户登录
- jenkins定时构建
- 关于传参的两种方式 传值与传址 的深入理解 (附 hdu3999
- 记录一美炸天程序媛进入新公司后的心酸历程
- 整个社会总嫌自己不够“快”,为啥?
- Js调用Java方法并互相传参
- 【C#链接数据库】用command和Connection实现系统登录界面
- Material Design 定制状态栏
- 《Effective java》笔记(第二版) --第二章(4-7)
- jsoup解析网站资源。Android
- 支付宝集成最新常见问题详解
- jenkins构建
- 如何在Android Studio中使用LeakCanary检测内存泄露
- Servlet生命周期,工作原理,eclipse第一个Servlet,Servlet线程安全
- Android View 布局 过程