//客户端登录界面(Form1.cs窗口体系)

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 static System.Windows.Forms.VisualStyles.VisualStyleElement;

using System.Data.SqlClient;

namespace 图书管理系统1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click_1(object sender, EventArgs e)

{

if (textBox1.Text != "" && textBox2.Text != "")

{

Login();

}

else

{

MessageBox.Show("输入有空项,请重新输入!");

}

}

//登陆方法,验证是否允许登录,允许返回真

public void Login()

{

//用户

if (radioButtonuser.Checked == true)

{

Dao dao = new Dao();

string sql = $"select * from dbo.用户表 where 用户ID='{textBox1.Text}'and 用户密码='{textBox2.Text}'";

IDataReader dc = dao.read(sql);

if(dc.Read())

{

Data.UID = dc["用户ID"].ToString();

Data.UName = dc["用户姓名"].ToString();

MessageBox.Show("登陆成功!");

user1 user = new user1();//用户窗体进行实例化

this.Hide();                              //隐藏登录窗体

user.ShowDialog();                             //选择对话框

this.Show();//显示旧窗体

}

else

{

MessageBox.Show("登陆失败!");

}

dao.DaoClose();

}

//管理员

if (radioButtonadmin.Checked == true)

{

Dao dao = new Dao();

string sql = $"select * from 管理员表 where 管理员ID='{textBox1.Text}'and 密码='{textBox2.Text}'";

IDataReader dc = dao.read(sql);

if (dc.Read())

{

MessageBox.Show("登陆成功!");

admin1 a = new admin1();

this.Hide();

a.ShowDialog();//用户窗体进行实例化

this.Show();               //显示旧窗体

}

else

{

MessageBox.Show("登陆失败!");

}

}

MessageBox.Show("单选框请先选中!");

}

}

}

//program.cs(C#页面)

using System;

using System.Windows.Forms;

namespace 图书管理系统1

{

internal static class Program

{

/// <summary>

/// 应用程序的主入口点。

/// </summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

// Application.Run(new admin2());

}

}

}

//Data.cs(C#页面)

using System;

using System.Collections.Generic;

using System.Data;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace 图书管理系统1

{

internal class Data//存储登陆的一些数据

{

public static string UID = "", UName = "";//用户ID和姓名默认为空

}

}

//Dao.cs(C#页面)数据库连接代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Data.SqlClient;

using System.Runtime.InteropServices;

using System.ComponentModel;

using System.Security.Policy;

using System.Runtime.Remoting.Messaging;

using System.Runtime.InteropServices.WindowsRuntime;

using System.Data;

namespace 图书管理系统1

{

class Dao//数据库连接

{

SqlConnection sc;

public SqlConnection connect()

{

string str = @"Data Source=WIN-GIHP114UG9H;Initial Catalog=图书管理;Integrated Security=SSPI";//数据库连接字符串windons登录

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)//更新操作

{

return command(sql).ExecuteNonQuery();

}

public SqlDataReader read(string sql)//读取操作

{

return command(sql).ExecuteReader();

}

public void DaoClose()

{

sc.Close();

}

}

}

//登录管理员的主页面(admin1.cs窗口体系)

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;

namespace 图书管理系统1

{

public partial class admin1 : Form

{

public admin1()

{

InitializeComponent();

}

private void 图书管理ToolStripMenuItem_Click(object sender, EventArgs e)

{

admin2 admin = new admin2();

admin.ShowDialog();//实现跳转

}

}

}

//管理员图书管理页面(admin2.cs窗口体系)

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;

namespace 图书管理系统1

{

public partial class admin2 : Form

{

public admin2()

{

InitializeComponent();

}

private void admin2_Load(object sender, EventArgs e)//页面

{

Table();

label2.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString()+ dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取书号和书名

}

//从数据库读取数据显示在表格控件

public void Table()

{

dataGridView1.Rows.Clear();//清空旧数据

Dao dao = new Dao();

string sql = "SELECT * FROM dbo.图书表";

IDataReader dc = dao.read(sql);//把数据库的查询语句传到dao类read方法,dao类的read用来读取数据库,数据返回到dc,dc用来接收数据

while(dc.Read())//读完返回一个false跳出循环

{

dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

}

dc.Close();

dao.DaoClose();

}

public void Table图书ID()//根据书号进行查询

{

dataGridView1.Rows.Clear();//清空旧数据

Dao dao = new Dao();

string sql = $"SELECT * FROM dbo.图书表 WHERE 图书ID='{textBox1.Text}'";

IDataReader dc = dao.read(sql);//把数据库的查询语句传到dao类read方法,dao类的read用来读取数据库,数据返回到dc,dc用来接收数据

while (dc.Read())//读完返回一个false跳出循环

{

dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

}

dc.Close();

dao.DaoClose();

}

public void Table图书名Name()//根据书名进行查询,模糊语句

{

dataGridView1.Rows.Clear();//清空旧数据

Dao dao = new Dao();

string sql = $"SELECT * FROM dbo.图书表 WHERE 图书名 like'%{textBox2.Text}%'";

IDataReader dc = dao.read(sql);//把数据库的查询语句传到dao类read方法,dao类的read用来读取数据库,数据返回到dc,dc用来接收数据

while (dc.Read())//读完返回一个false跳出循环

{

dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

}

dc.Close();

dao.DaoClose();

}

private void button3_Click(object sender, EventArgs e)//删除图书

{

try

{

string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取书号

label2.Text = id + dataGridView1.SelectedRows[0].Cells[1].Value.ToString();

DialogResult dr = MessageBox.Show("确认删除吗?", "信息提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

if (dr == DialogResult.OK)

{

string sql = $"DELETE FROM dbo.图书表 WHERE 图书ID='{id}'";

Dao dao = new Dao();

if (dao.Execute(sql) > 0)

{

MessageBox.Show("删除成功!");

Table();

}

else

{

MessageBox.Show("删除失败!"+sql);

}

dao.DaoClose();

}

}

catch

{

MessageBox.Show("请先在表格中选中要删除的图数记录!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Error);

}

}

private void dataGridView1_Click(object sender, EventArgs e)//点击click选定要删除的图书

{

label2.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString() + dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取书号和书名

}

private void button1_Click(object sender, EventArgs e)//添加图书

{

admin21 a = new admin21();

a.ShowDialog();

}

private void button2_Click(object sender, EventArgs e)

{

try

{

string 图书ID=dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

string 图书名 = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();

string 作者 = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();

string 出版社 = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();

string 库存 = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();

admin22 admin = new admin22(图书ID, 图书名, 作者, 出版社, 库存);

admin.ShowDialog();

Table();//刷新数据

}

catch

{

MessageBox.Show("ERROR!");

}

}

private void button5_Click(object sender, EventArgs e)

{

Table图书ID();

}

private void button6_Click(object sender, EventArgs e)

{

Table图书名Name();

}

private void button4_Click(object sender, EventArgs e)

{

Table();

textBox1.Text = "";//文本框清空

textBox1.Text = "";

}

}

}

//管理员图书管理——添加图书(admin21.cs窗口体系)

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 static System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace 图书管理系统1

{

public partial class admin21 : Form

{

public admin21()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && textBox5.Text != "")

{

Dao dao = new Dao();

string sql = $"INSERT INTO dbo.图书表 VALUES('{textBox1.Text}','{textBox2.Text}','{textBox3.Text}','{textBox4.Text}','{textBox5.Text}')";

int n = dao.Execute(sql);

if (n > 0)

{

MessageBox.Show("添加成功!");

}

else

{

MessageBox.Show("添加失败!");

}

textBox1.Text = "";

textBox2.Text = "";

textBox3.Text = "";

textBox4.Text = "";

textBox5.Text = "";

}

else

{

MessageBox.Show("输入不允许有空项!");

}

}

private void button2_Click(object sender, EventArgs e)

{

textBox1.Text = "";

textBox2.Text = "";

textBox3.Text = "";

textBox4.Text = "";

textBox5.Text = "";

}

}

}

//管理员图书管理——修改图书(admin22.cs窗口体系)

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Net.NetworkInformation;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace 图书管理系统1

{

public partial class admin22 : Form

{

string ID = "";//公用变量

public admin22()

{

InitializeComponent();

}

public admin22(string 图书ID, string 图书名, string 作者, string 出版社, string 库存)

{

InitializeComponent();

ID=textBox1.Text = 图书ID;

textBox2.Text = 图书名;

textBox3.Text = 作者;

textBox4.Text = 出版社;

textBox5.Text = 库存;

}

private void button1_Click(object sender, EventArgs e)//修改按钮的代码

{

string sql = $"UPDATE dbo.图书表 SET 图书ID='{textBox1.Text}',图书名='{textBox2.Text}',作者='{textBox3.Text}',出版社='{textBox4.Text}',库存='{textBox5.Text}' WHERE  图书ID='{ID}'";

Dao dao = new Dao();

if(dao.Execute(sql)>0)

{

MessageBox.Show("修改成功!");

this.Close();

}

}

}

}

//用户登录主页面(user1.cs窗口体系)

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;

namespace 图书管理系统1

{

public partial class user1 : Form

{

public user1()

{

InitializeComponent();

label2.Text = $"欢迎{Data.UName}登录";

}

private void 图书查看和借阅ToolStripMenuItem_Click(object sender, EventArgs e)

{

user2 a = new user2();//跳转页面

a.ShowDialog();

}

private void 当前图书的借出和归还ToolStripMenuItem_Click(object sender, EventArgs e)

{

user3 us = new user3();

us.ShowDialog();

}

private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)

{

MessageBox.Show("HELP!");

}

private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)

{

this.Close();

}

}

}

//用户图书管理——图书的查看和借阅(user2.cs窗口体系)

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;

namespace 图书管理系统1

{

public partial class user2 : Form

{

public user2()

{

InitializeComponent();

Table();

}

private void user2_Load(object sender, EventArgs e)

{

}

public void Table()

{

dataGridView1.Rows.Clear();//清空旧数据

Dao dao = new Dao();

string sql = "SELECT * FROM dbo.图书表";

IDataReader dc = dao.read(sql);//把数据库的查询语句传到dao类read方法,dao类的read用来读取数据库,数据返回到dc,dc用来接收数据

while (dc.Read())//读完返回一个false跳出循环

{

dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

}

dc.Close();

dao.DaoClose();

}

private void button1_Click(object sender, EventArgs e)//借出图书

{

string 图书ID = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//书号

int 库存 = int.Parse(dataGridView1.SelectedRows[0].Cells[4].Value.ToString());//库存

if(库存<1)

{

MessageBox.Show("库存不够,请联系管理员购入!");

}

else

{

string sql = $"INSERT INTO dbo.借书表([用户ID],[图书ID] ,[截止日期] )VALUES ('{Data.UID}','{图书ID}',GETDATE());UPDATE dbo.图书表 SET 库存=库存-1 WHERE 图书ID='{图书ID}'";

Dao dao = new Dao();

if(dao.Execute(sql)>1)//执行两条sql语句大于一才是都执行成功

{

MessageBox.Show($"用户:{Data.UName}借出了图书{图书ID}!");

Table();

}

else

{

MessageBox.Show("借书失败!");

}

}

}

}

}

//用户图书管理——我借到和归还的图书(user3.cs窗口体系)

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.Web;

using System.Windows.Forms;

namespace 图书管理系统1

{

public partial class user3 : Form

{

public user3()

{

InitializeComponent();

Table();

}

public void Table()

{

dataGridView1.Rows.Clear();//清空旧数据

Dao dao = new Dao();

string sql = $"SELECT [no],[图书ID],[截止日期] FROM dbo.借书表 WHERE 用户ID='{Data.UID}'";

IDataReader dc = dao.read(sql);//把数据库的查询语句传到dao类read方法,dao类的read用来读取数据库,数据返回到dc,dc用来接收数据

while (dc.Read())//读完返回一个false跳出循环

{

dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString());//三个参数

}

dc.Close();

dao.DaoClose();

}

private void button1_Click(object sender, EventArgs e)

{

string 图书ID = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取书号

string no= dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取编号

string sql = $"DELETE FROM dbo.借书表 WHERE [no]={no};UPDATE dbo.图书表 SET 库存=库存+1 WHERE 图书ID='{图书ID}'";

Dao dao = new Dao();

if(dao.Execute(sql)>1)

{

MessageBox.Show("归还成功!");

Table();

}

}

}

}

C#连接数据库实现开发图书管理系统操作代码的更多相关文章

  1. JavaWeb开发图书管理系统(新本版)源码

    开发环境: Windows操作系统开发工具: Myeclipse+Jdk+Tomcat+MySQL数据库 运行效果图

  2. python 全栈开发,Day77(图书管理系统)

    一.图书管理系统 完整代码链接: https://github.com/py3study/bms_multi 本项目使用session来实现一个简单的图书管理系统 未登录不允许访问后台: 直接访问后台 ...

  3. 基于jsp+servlet图书管理系统之后台用户信息修改操作

    上一篇的博客写的是查询操作,且附有源码和数据库,这篇博客写的是修改操作,附有从头至尾写的代码(详细的注释)和数据库! 此次修改操作的源码和数据库:http://download.csdn.net/de ...

  4. 基于jsp+servlet图书管理系统之后台用户信息删除操作

    上一篇的博客写的是修改操作,且附有源码和数据库,这篇博客写的是删除操作,附有从头至尾写的代码(详细的注释)和数据库! 此次删除操作的源码和数据库:http://download.csdn.net/de ...

  5. 基于jsp+servlet图书管理系统之后台用户信息插入操作

    前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...

  6. [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)

    [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date  周六 10 一月 2015 By 钟谢伟 Category website develop ...

  7. 基于jsp+servlet图书管理系统之后台用户信息查询操作

    上一篇的博客写的是插入操作,且附有源码和数据库,这篇博客写的是查询操作,附有从头至尾写的代码(详细的注释)和数据库! 此次查询操作的源码和数据库:http://download.csdn.net/de ...

  8. Node操作MongoDB并与express结合实现图书管理系统

    Node操作MongoDB数据库 原文链接:http://www.xingxin.me/ Web应用离不开数据库的操作,我们将陆续了解Node操作MongoDB与MySQL这是两个具有代表性的数据库, ...

  9. 图书管理系统【JavaWeb:部署开发环境、解决分类、图书、前台页面模块】

    前言 巩固Servlet+JSP开发模式,做一个比较完整的小项目. 成果图 该项目包含了两个部分,前台和后台. 前台用于显示 后台用于管理 该项目可分为5个模块来组成:分类模块,用户模块,图书模块,购 ...

  10. 图书管理系统 (c语言实现) (全部代码)

    直接上代码不解释 #include <stdio.h> #include <stdlib.h> #include <string.h> #define AVAILA ...

随机推荐

  1. Kubernetes 安装网络插件(calico)

    简介 Calico是Kubernetes生态系统中另一种流行的网络选择.虽然Flannel被公认为是最简单的选择,但Calico以其性能.灵活性而闻名.Calico的功能更为全面,不仅提供主机和pod ...

  2. Linux网络第五章:yum仓库的灵活部署及NFS共享服务

    目录 一.yum仓库的灵活部署 1.yum基础知识及命令 2.本地yum仓库搭建 3.通过httpd服务建立yum仓库 4.建立国内yum源 二.NFS共享服务 1.NFS基础知识 2.搭建NFS服务 ...

  3. TM1621断码液晶驱动IC的原理、驱动代码

    TM1621是一个多功能的LCD驱动器,带有蜂鸣器驱动功能.通讯采用四线串行接口 TM1621的难点在于字节序和显存跟屏幕的映射关系上,下面是写寄存器的代码 void Delay_us(uint8_t ...

  4. JavaScript案例:倒计时

    展示效果: 代码示例: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...

  5. QT程序自动寻找依赖的DLL

    1.找到项目的生成目录,比如项目源码路径:E:\Qt\Login: 2.进入它的项目生成目录,拷贝出可执行程序,例如放置在 E:\QtApp中. 3.然后从开始菜单打开 Qt 命令行, a.输入命令 ...

  6. TCP三次握手四次挥手内容及步骤

    TCP特性 1.工作在传输层 2.面向连接的协议 3.全双工协议 4.半关闭 5.错误检查 6.将数据打包成段,排序 7.确认机制 8.数据恢复.重传 9.流量控制.滑动窗口 10.拥塞控制,慢启动和 ...

  7. 固定代码格式化程序插件-Prettier JetBrains

    基本使用 使用npm install prettier --save-dev为您的项目添加更漂亮或全局安装 使用Prettier选择要格式化的代码或文件 使用"Reformat with P ...

  8. echarts柱状图快速上手笔记地址

    https://blog.csdn.net/qq_40323256/article/details/114890628 借鉴借鉴

  9. Redis实战(三)Redis冷备如何做

    Redis 的 RDB 持久化方案,相信大家都有所了解,但是对于企业来说,如果只是持久化了一个 RDB 文件,不足以应付生产级别的事故.通常的方案就是对 RDB 进行多个备份,今天带大家来真枪实弹操作 ...

  10. locust中的监听器

    locust的master相关的几个监听器: 心跳监听器: 一个while循环,不断判断所有client当前的心跳状况,如果有一个client失去了心跳,就打印了一个警告日志,如果所有client都失 ...