版权声明:记录上工作中的一些问题 https://blog.csdn.net/m0_37583098/article/details/88547123
接着上一张:https://blog.csdn.net/m0_37583098/article/details/88546146
这篇主要是登录界面
我先将winform与数据库的常用方法 封装了一下 另添加创建类
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace csdn
{
public class SQLHelper
{
public static string connString = "server=.;database=SMDB;user=sa;pwd=12345";
public static bool OpenSQL()
{
SqlConnection conn = new SqlConnection(connString);
conn.Open();
try
{
return true;
}
catch (Exception)
{
return false;
throw;
}
}
/// <summary>
/// 执行增、删、改操作
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int Update(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
int result = cmd.ExecuteNonQuery();
return result;
}
catch (Exception ex)
{
//写入系统日志
throw new Exception(ex.Message);
}
finally
{
conn.Close();
}
}
/// <summary>
/// 获取单一结果查询
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static object GetSingleResult(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
object result = cmd.ExecuteScalar();
return result;
}
catch (Exception ex)
{
//写入系统日志
throw ex;
}
finally
{
conn.Close();
}
}
/// <summary>
/// 返回一个结果集的查询
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
//写入系统日志
conn.Close();
throw ex;
}
}
}
}
2.登录数据库
3. 创建管理员表
2.然后回到VS 创建登录界面
添加脚本验证输入字符不为空
//数据验证
if (this.txtLoginId.Text.Trim().Length==0) {
MessageBox.Show("请输入登录账号","登录提示");
this.txtLoginId.Focus();
return;
}
4.创建数据访问类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Models
{
public class Admin
{
/// <summary>
/// 登录账号
/// </summary>
public int LoginId { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string AdminName { get; set; }
/// <summary>
/// 登录密码
/// </summary>
public string LoginPwd { get; set; }
}
}
5.//封装用户信息到用户对象
Admin objAdmin = new Admin()
{
LoginId = Convert.ToInt32(this.txtLoginId.Text.Trim()),
LoginPwd = this.txtLoginPwd.Text.Trim()
};
6.提交用户
//提交用户信息
try
{
objAdmin = objAdminService.AdminLogin(objAdmin);
if (objAdmin == null)
{
MessageBox.Show("登录账号或密码错误!!", "登录提示");
}
else {
//保存登录对象
sqlLog.WriteSQLLog(objAdmin .AdminName+ "用户登录!");
Program.currAdmin = objAdmin;
this.DialogResult = DialogResult.OK;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"登录失败!!");
}
}
说一下 这里的objAdminService.AdminLogin();是在另外一个类里创建 命名空间啥的大家自己注意点改成自己的
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using Models;
using System.Data.SqlServerCe;
namespace DAL
{
/// <summary>
/// 管理员数据访问类
/// </summary>
public class AdminService
{
/// <summary>
/// 根据用户名或密码登录
/// </summary>
/// <param name="objAdmin"></param>
/// <returns></returns>
public Admin AdminLogin(Admin objAdmin)
{
string sql = "select AdminName from Admins where LoginId={0} and LoginPwd='{1}'";
sql = string.Format(sql, objAdmin.LoginId, objAdmin.LoginPwd);
try
{
SqlCeDataReader objReader = SQLHelper.GetReader(sql);
if (objReader.Read())
{
objAdmin.AdminName = objReader["AdminName"].ToString();
}
else
{
objAdmin = null;
}
objReader.Close();
return objAdmin;
}
catch (Exception ex)
{
throw new Exception("数据访问发生异常:" + ex.Message);
}
}
/// <summary>
/// 修改密码
/// </summary>
/// <param name="loginid">登录ID</param>
/// <param name="newPwd">新密码</param>
/// <returns></returns>
public int ModifyPwd(string loginid,string newPwd) {
string sql = "update Admins set LoginPwd='{0}' where LoginId={1}";
sql = string.Format(sql,newPwd,loginid);
return SQLHelper.Update(sql);
}
/// <summary>
/// 密码找回
/// </summary>
/// <param name="objAdmin"></param>
/// <returns></returns>
public Admin FindAdminpwd(string LoginId)
{
string sql = "select * from Admins where LoginId={0}";
sql = string.Format(sql, LoginId);
try
{
SqlDataReader objReader = SQLHelper.GetReader(sql);
Admin Login = new Admin();
if (objReader.Read())
{
Login.AdminName = objReader["AdminName"].ToString();
Login.LoginPwd = objReader["LoginPwd"].ToString();
}
objReader.Close();
return Login;
}
catch (Exception ex)
{
throw new Exception("数据访问发生异常:" + ex.Message);
}
}
}
}
SQLHelper.GetReader(sql);就是我这篇文章最先添加的那个方法
关闭按钮功能
//关闭
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
管理系统开发三: winforml查询界面 sql数据录入