课程设计之图书管理系统C#实现

项目结构:
在这里插入图片描述在这里插入图片描述 各个界面的功能和主要代码
主界面:
在这里插入图片描述主要代码

Application.Run(new login());

用户登录之后的界面

在这里插入图片描述主要代码

ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            user1 u1 = new user1();
            u1.ShowDialog();
        }

        private void 借书和还书ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            user3 u3 = new user3();
            u3.ShowDialog();
        }

        private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("您好!有什么能帮助你的?");
        }

        private void 退出登录ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void 联系管理员ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("您好!我是这个系统的管理人员,有什么需要帮助的吗?");
        }

        private void 投诉与建议ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            useradvise ad = new useradvise();
            ad.ShowDialog();

        }
     

点击查看和借阅图书,可以查看一些书籍,并且可以查询想要的书籍
在这里插入图片描述还书界面,当然现在没有借书,如果有借书,会有相应的记录
在这里插入图片描述还有一些其它的功能
在这里插入图片描述
点击联系管理员
在这里插入图片描述
点击投诉与建议
在这里插入图片描述
当然,点击退出登录,那么就会退出当前登录的用户。

然后是管理员的代码和功能:
我们选择管理员,然后输入管理员的信息和密码登录
在这里插入图片描述点击登陆
在这里插入图片描述登陆的主要代码

 public void Login() {
            //用户
            if (radioButtonU.Checked == true)
            {
                Dao dao = new Dao();

               // string sql = "select * from t_usersg where id = '" + textBox3.Text + "'and psw = '" + textBox4.Text + "'";
                //String.Format("select * from t_usersg where id='{0}'and='{1}'",textBox3.Text,textBox4.Text);
               string sql1 = $"select * from t_usersg where id='{textBox3.Text}'and psw='{textBox4.Text}'";

                //  MessageBox.Show("1");可以用来测试连接数据库是否成功
                IDataReader dc = dao.read(sql1);
                if (dc.Read())
                {
                    Data.UID = dc["id"].ToString();
                    Data.UName = dc["name"].ToString();
                    MessageBox.Show("登陆成功");
                    user users = new user();
                    this.Hide();
                    users.ShowDialog();
                    this.Show();
                }
                else {
                    MessageBox.Show("登陆失败");
                    
                }
                dao.DaoClose();
                
            }
            //管理员
            if (radioButtonA.Checked == true)
            {
                Dao dao = new Dao();

                string sql1 = $"select * from t_adm where id='{textBox3.Text}'and psw='{textBox4.Text}'";

                //  MessageBox.Show("1");可以用来测试连接数据库是否成功
                IDataReader dc = dao.read(sql1);
                if (dc.Read())
                {
                    MessageBox.Show("登陆成功");
                    admin a = new admin();
                    //a.Show();这个方法可以对登陆界面窗体进行操作
                    this.Hide();
                    a.ShowDialog();
                    this.Show();
                }
                else
                {
                    MessageBox.Show("登陆失败");
                    
                }
                dao.DaoClose();
            }
            
}

管理员登陆之后的界面
在这里插入图片描述点击系统,我们的管理员可以和普通用户一样,借书还书,退出登录
在这里插入图片描述

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

        private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("您好!有什么能帮助你的?");
        }

        private void 联系管理员ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("您好!我是这个图书系统的管理员");
        }

        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //this.Close();
        }

        private void 借书ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            adminbrow am = new adminbrow();
            am.ShowDialog();
        }

        private void 还书ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            adminreturn an = new adminreturn();
            an.ShowDialog();
        }

        private void 系统ToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void 退出登录ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void admin_Load(object sender, EventArgs e)
        {

        }

        private void 查看学生借阅情况ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            browdata b = new browdata();
            b.ShowDialog();
        }

        private void 管理图书ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            admin1 a1 = new admin1();
            a1.ShowDialog();
        }`


管理员管理图书的界面
在这里插入图片描述点击查看学生借阅情况,就会显示借书信息管理图书
在这里插入图片描述点击添加图书,即可添加图书
在这里插入图片描述在这里插入图片描述还可以修改图书信息
在这里插入图片描述还有其它功能也一样,就不一一演示了,直接上代码:

private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void admin1_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 t_book";
            IDataReader dc = dao.read(sql);//构造一个读取结果集,然后把它实例化成一个对象,通过dao类读取,返回结果
            while (dc.Read())
            {
                dataGridView1.Rows.Add(dc[0].ToString(),dc[1].ToString(),dc[2].ToString(),dc[3].ToString(),dc[4].ToString());
            
            }
            dc.Close();
            dao.DaoClose();
        }
        //根据书号显示数据
        public void TableRE()
        {
            dataGridView1.Rows.Clear();//清空旧数据
            Dao dao = new Dao();
            string sql = $"select*from t_book where id='{textBox1.Text}'";
            IDataReader dc = dao.read(sql);//构造一个读取结果集,然后把它实例化成一个对象,通过dao类读取,返回结果
            while (dc.Read())
            {
                dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

            }
            dc.Close();
            dao.DaoClose();
        }
        //根据书名显示数据
        public void TableName() 
        {
            dataGridView1.Rows.Clear();//清空旧数据
            Dao dao = new Dao();
        string sql = $"select * from t_book where name like'%{textBox2.Text}%'";
        IDataReader dc = dao.read(sql);//构造一个读取结果集,然后把它实例化成一个对象,通过dao类读取,返回结果
            while (dc.Read())
            {
                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 t_book 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)
        {
            label2.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString()+dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取书号和书名
        }

        private void button1_Click(object sender, EventArgs e)
        {
            admin1tj a1 = new admin1tj();
            a1.ShowDialog();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
                string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
                string author = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
                string press = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
                string number = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();
                admin1xg d = new admin1xg(id,name,author,press,number);//实例化
                d.ShowDialog();//显示在修改界面
                Table();
            }
            catch
            {
                MessageBox.Show("错误");
            }

        }

        private void button5_Click(object sender, EventArgs e)
        {
            TableRE();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            TableName();
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void button4_Click(object sender, EventArgs e)
        {
            Table();
            textBox1.Text = "";
            textBox2.Text = "";
        }

        private void button7_Click(object sender, EventArgs e)
        {
            int n = dataGridView1.SelectedRows.Count;//获取当前选中的行数
            DialogResult d = MessageBox.Show("确认删除吗?", "信息提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if (d == DialogResult.OK)
            {
                string sql = $"delete from t_book where id in(";
                for (int i = 0; i < n; i++)
                {
                    MessageBox.Show(dataGridView1.SelectedRows[i].Cells[i].Value.ToString());
                    sql += $"'{dataGridView1.SelectedRows[i].Cells[0].Value.ToString()}',";
                }
                sql = sql.Remove(sql.Length - 1);//删除最后一个字符串
                sql += ")";
                MessageBox.Show(sql);
                Dao dao = new Dao();
                if (dao.Execute(sql) > n - 1)
                {
                    MessageBox.Show($"成功删除{n}条信息");
                    Table();
                }
            }
            else {
                Table();
            }

        }
    }



最后,数据库的表,我用的SqlServer

管理员表:

在这里插入图片描述

用户表:
在这里插入图片描述

图书表:
在这里插入图片描述

借书表:
在这里插入图片描述
还书表:
在这里插入图片描述

  • 19
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值