用vs2019使用C#连接MySQL创建图书管理系统1(登录的部分设计和数据库设计)
用vs2019使用C#连接MySQL创建图书管理系统
目录
S4 若是Microsoft SQL Sever 链接数据库则是这一步
PS:本系列文章基于B站UP主“面朝星海我心澎湃”的视频,时空门: P1 登录页面设计和数据库设计
区别在①up主用的SQLserver,但是本文章是MySQL
②本文章的数据库表比up主复杂一点,以及表里的内容不一样(本文章无论用户表还是管 理员表都是海贼王滴,没办法,海米一枚~)
S1:创建新项目
S2:修改窗体名字
右侧->属性->Font->Text->改为"Login"
S3 拉出大致登录框架
左侧->工具箱
(一)lable
再修改lable相关属性:
①右侧->属性->Font->Text->改为"欢迎登录图书管理系统"
②Font旁点一下,字体大小改为‘一号’,其他按照个人喜好
在拉两个lable,一个属性->Font->Text->改为"ID:",另外一个属性->Font->Text->改为"PassWord:"至于美化,不急,把所有的拉出来了再一起设置字体,大小啥的(虽然你可以先把它两lable对齐)
(二)textbox
①拉两个textbox一个分别放ID: 和 PassWord: 的lable后面
②修改两个文本框的Name
ID右边的文本框,点击
右侧->属性->设计->Name->"textBoxID"(其实就是后面 删去1,加了一个ID)
同理,PassWord右边的 文本框Name改为"textBoxPassWord"
(三)Button
拉两个Button 放左/右下角
①左下角的:右侧->属性->Font->Text->改为"Login",右下角的:Font->Text->改为"Cancel"
②修改两个Button_Click的Name
单击Login Button->右侧->属性->设计->Name->"ButtonLogin"(其实就是后面 删去1,加了一个Login)
同理,Cancel Name改为"ButtonCancel"
(四)radioButtonl
拉两个radioButtonl放左/右下角(分别放在Login 和 Cancel 上面),用来表示选择身份
①左:右侧->属性->Font->Text->改为"User",右下角的:Font->Text->改为"Admin"
②左:右侧->属性->外观->Checked>改为"True",这样相当于默认是选中用户
② 除“欢迎。。系统”外其他的全部框中,统一修改字体和大小->再浅浅修改一下布局(按照喜好,对齐)
S4 若是Microsoft SQL Sever 链接数据库则是这一步
①存登陆者的信息——Data类
添加名为Data的类
②对数据库进行链接和操作
添加名为Dao的类
分解:
public SqlConnection connection():
①:数据库服务器名称
②:数据库的名字
③:一个参数(暂时不知道做什么用)
(ps:下图代码只是过程代码,以最终代码为准)
using System.Data.SqlClient;
namespace WindowsFormsApp1
{
class Dao
{
SqlConnection sc;
//数据库连接
public SqlConnection connect()
{
string str = @"Data Source=LAPTOP-HCLU4VVJ;Initial Catalog=ksdb;Integrated Security=True";//数据库连接字符串
sc = new SqlConnection(str);//创建数据库连接对象
sc.Open();//打开数据库
return sc;//返回数据库连接对象
}
public SqlCommand command(string sql)
{
SqlCommand cmd = new SqlCommand(sql, connect());
return cmd;
}
public int Execute(string sql)// 更新操作 //返回int类型,告诉你受影响的行数 //传入对应的sql语句
{
return command(sql).ExecuteNonQuery();
}
public SqlDataReader read(string sql)//读取操作
{
return command(sql).ExecuteReader();
}
public void DaoClose()
{
sc.Close();//关闭数据库连接
}
}
}
S4 若是MySQL 链接数据库则是这一步
MySQL 链接的Data类步骤与SQL Server相同
①存登陆者的信息——Data类
添加名为Data类
②对数据库进行链接和操作
添加名为Dao的类,添加类时步骤一样,但是代码不同
ps:以下代码仅供学习,最终代码以实际为准
1:输入头文件: using MySql.Data.MySqlClient;(这一步如果发现报错,说明是C#连接MySQL 未 添加连接MySQL的引用,可看我上一篇文章《用VS2019(C#)连接MYSQL(从0入门,手把手教学)》里面的S3-5有3种不同的解决方法)
2:connect()函数:
public MySqlConnection connect():
string strcon = "Database=Book;Data Source=localhost;User Id=root;Password=123456";//连接数据库的参数
MySqlConnection mysqlcon = new MySqlConnection(strcon);//连接数据库
mysqlcon.Open();
【Database】: 数据库名称
【Data Source】 :服务器IP地址 ,一般为localhost 或者 127.0.0.1
【User Id】 :数据库用户名 (由于连自己电脑,就是root)
【Password】: 数据库密码
进化:
//改进
string str = "Database=ksdb;Data Source=localhost;User Id=root;Password=ww8888";//连接数据库的参数
try
{
sc.Open();//打开数据库
MessageBox.Show("数据库连接成功");
}
catch (System.Exception)
{
MessageBox.Show("数据库连接失败");
throw;
}
using System.Data.SqlClient; //应该不需要了,因为这个是连sql Server用的
using MySql.Data.MySqlClient;
namespace WindowsFormsApp1
{
class Dao
{
MySqlConnection sc;
//数据库连接
public MySqlConnection connect()
{
string str = "Database=ksdb;Data Source=localhost;User Id=root;Password=ww8888";//连接数据库的参数
sc = new MySqlConnection(str);//连接数据库
sc.Open();//打开数据库
return sc;//返回数据库连接对象
//SQL Server 的连接方法
/* string str = @"Data Source=LAPTOP-HCLU4VVJ;Initial Catalog=ksdb;Integrated Security=True";//数据库连接字符串
sc = new SqlConnection(str);//创建数据库连接对象
sc.Open();//打开数据库
return sc;//返回数据库连接对象*/
}
public MySqlCommand command(string sql)
{
MySqlCommand cmd = new MySqlCommand(sql, connect());
return cmd;
}
public int Execute(string sql)// 更新操作 //返回int类型,告诉你受影响的行数 //传入对应的sql语句
{
return command(sql).ExecuteNonQuery();
}
public MySqlDataReader read(string sql)//读取操作 SqlDataReader->MySqlDataReader
{
return command(sql).ExecuteReader();//通过输入的ID和密码讲在数据库里查询出来的结果 显示出来
}
public void DaoClose()
{
sc.Close();//关闭数据库连接
}
}
}
S5 创建数据库
①读者类型表
-- 一、选择数据库
USE ksdb;
-- 二、创建数据表
-- 1、创建读者类别表并插入测试数据
CREATE TABLE KS_ReaderType
(
rdType SMALLINT PRIMARY KEY, -- 读者类别
rdTypeName VARCHAR(20) NOT NULL UNIQUE, -- 读者姓名
CanLenQty int, -- 可借书数目
CanLendDay int, -- 可借书天数
CanContinueTimes int,
PunishRate float, -- 惩罚钱
DateValid SMALLINT DEFAULT(0) -- 有效日期
)
show TABLES; -- 查看所有表
DESC KS_ReaderType; -- 查看数据表的结构
INSERT INTO KS_ReaderType VALUES
(10,'教师',12,60,2,0.05,0),
(20,'本科生',8,30,1,0.05,4),
(21,'专科生',8,30,1,0.05,3),
(30,'硕士研究生',8,30,1,0.05,3),
(31,'博士研究生',8,30,1,0.05,4);
SELECT * FROM KS_ReaderType;
②读者表
-- 2、创建读者表并插入测试数据
CREATE TABLE KS_Reader
(
rdID int PRIMARY KEY,
rdName VARCHAR(20),
rdSex CHAR(1),
rdType SMALLINT REFERENCES KS_ReaderType(rdType),
rdDept VARCHAR(20),
rdPhone VARCHAR(25), -- 1
rdEmail VARCHAR(25), -- 1
-- rdDateReg datetime DEFAULT getdate(),
-- rdPhoto image,
rdStatus CHAR(2) DEFAULT'有效', -- 1
rdBorrowQty int DEFAULT 0, -- 1
rdPwd VARCHAR(20),
rdAdminRoles SMALLINT DEFAULT 0
)
show TABLES; -- 查看所有表
DESC KS_Reader; -- 查看数据表的结构
INSERT INTO ks_reader(rdID,rdName,rdPwd,rdType,rdDept,rdAdminRoles)VALUES
(1,'路飞','123',10,'图书馆',8), -- 系统管理员
(2,'索隆','123',10,'图书馆',1), -- 读者(借书证)管理员
(3,'乔巴','123',10,'图书馆',2), -- 图书管理员
(4,'娜美','123',10,'图书馆',4), -- 接还书管理员
(5,'乌索普','123',10,'图书馆',6), -- 图书、接还书管理员
(6,'香吉士','123',10,'图书馆',7), -- 读者、图书、接还书管理员
(7,'骷髅','123',10,'图书馆',15); -- 读者、图书、接还书、系统管理员
SELECT * FROM ks_reader;
INSERT INTO ks_reader(rdID,rdName,rdPwd,rdSex,rdType,rdDept)VALUES
(100,'白胡子','123','男',10,'计科院'), -- 读者,教师
(101,'红发','123','男',20,'计科11001班'), -- 读者,本科生
(102,'凯多','123','男',30,'硕计11201班'), -- 读者,硕士研究生
(103,'夏洛特.玲玲','123','女',20,'计科11001班'); -- 读者,本科生
③图书表
-- 3、创建图书表并插入测试数据
CREATE TABLE KS_Book
(
-- bkID int identity(1,1)PRIMARY KEY,
bkCode VARCHAR(20)NOT NULL,
bkName VARCHAR(50),
bkAuthor VARCHAR(30),
bkPress VARCHAR(50),
-- bkDatePress datetime,
bkISBN VARCHAR(15),
bkCatalog VARCHAR(30),
-- bkLanguage smallint,
-- bkPages int,
bkPrice FLOAT,
-- bkDateln datetime DEFAULT getdate(),
-- bkBrief text,
-- bkCover image,
bkStatus char(2) DEFAULT'在馆'
)
show TABLES; -- 查看所有表
DESC KS_Book; -- 查看数据表的结构
INSERT INTO ks_book VALUES
(1000,'如何成为海贼王','罗杰','集英社','1-111-1','TP312/12-3',59.0,NULL),
(1001,'如何成为海贼王','罗杰','集英社','1-111-1','TP312/12-3',59.0,NULL),
(1002,'如何成为海贼王','罗杰','集英社','1-111-1','TP312/12-3',59.0,NULL),
(1003,'迷','龙','革命军',NULL,NULL,59.0,NULL),
(1004,'迷','龙','革命军',NULL,NULL,59.0,NULL),
(1005,'迷','龙','革命军',NULL,NULL,59.0,NULL),
(1006,'迷','龙','革命军',NULL,NULL,59.0,NULL);
SELECT * FROM ks_book;
UPDATE ks_book SET bkStatus = '在馆';
④借阅表
-- 4、创建借阅表
CREATE TABLE KS_Borrow
(
-- BorrowID numeric(12,0) IDENTIFIED(1,1)PRIMARY KEY,
rdID int not null REFERENCES ks_reader(rdID),
bkID int not null REFERENCES ks_book(bkID),
idContinueTimes int,
idDateOut datetime not null,
idDateRetPlan datetime,
idDateReAct datetime,
idOverDay int,
idOverMoney DOUBLE,
idPunishMoney DOUBLE,
isHasReturn bit,
OperatorLend VARCHAR(20),
OperatorRet VARCHAR(20)
)
⑤管理员(admin)表
-- 5、创建管理员表并插入测试数据
CREATE TABLE KS_admin
(
adID int PRIMARY KEY,
adName VARCHAR(20),
adSex CHAR(1),
-- adType SMALLINT REFERENCES KS_ReaderType(rdType),
-- adDept VARCHAR(20),
-- adPhone VARCHAR(25), -- 1
-- adEmail VARCHAR(25), -- 1
-- rdDateReg datetime DEFAULT getdate(),
-- rdPhoto image,
-- adStatus CHAR(2) DEFAULT'有效', -- 1
-- adBorrowQty int DEFAULT 0, -- 1
adPwd VARCHAR(20)
-- adAdminRoles SMALLINT DEFAULT 0
)
show TABLES; -- 查看所有表
DESC KS_admin; -- 查看数据表的结构
-- 把四皇弄成管理员
DELETE FROM ks_reader WHERE rdID=100;
DELETE FROM ks_reader WHERE rdID=101;
DELETE FROM ks_reader WHERE rdID=102;
DELETE FROM ks_reader WHERE rdID=103;
SELECT * FROM ks_reader;
INSERT INTO ks_admin VALUES
(10000,'白胡子','男','123'), --
(10001,'红发','男','123'), --
(10002,'凯多','男','123'), --
(10003,'夏洛特.玲玲','女','123'); --
SELECT * FROM ks_admin;
SELECT * FROM ks_admin WHERE adID='10000' AND adPwd='123';
更多推荐
所有评论(0)