C#图书管理系统 附源码下载_C#教程

用来练手还是不错的,分享大家看一下,还是一些新颖点的   !哈哈 

就是自定义DataGridView,方便每个功能部分调用!简单!再次重申!!!后面源码会送上! 

首先看一下登录,上图吧! 

只有超级管理员跟管理员

接下来看一下主界面 

更改DataGridView数据列

datagridView自定义类 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Reflection;
using System.Drawing;

namespace Common
{
 public class Com
 {
  public void thread() {

  }
  /// <summary>
  /// DataGridView的样式
  /// </summary>
  /// <param name="GridView"></param>
  public void ExitGridView(DataGridView GridView)
  {
   GridView.AllowDrop = false;
   GridView.AllowUserToAddRows = false;
   GridView.AllowUserToDeleteRows = false;
   GridView.AllowUserToOrderColumns = false;
   GridView.AllowUserToResizeColumns = false;
  }
  /// <summary>
  /// 生成一列有功能的按钮
  /// </summary>
  /// <param name="name"></param>
  /// <param name="GridView"></param>
  public void AddColumn(string name, DataGridView GridView)
  {
   //添加修改按钮
   DataGridViewButtonColumn c = new DataGridViewButtonColumn();
   //设置列标题单元格的名称
   c.Text = name;
   //单元格的背景色
   c.DefaultCellStyle.BackColor = Color.LightGray;
   //单元格选定时的背景色
   c.DefaultCellStyle.SelectionBackColor = Color.DarkGray;

   //单元格的默认文本
   c.UseColumnTextForButtonValue = true;
   //单元格宽
   c.Width = 60;
   //添加新的一列对象
   //选中时背景色为灰色
   c.DefaultCellStyle.SelectionBackColor = Color.LightGray;
   c.DefaultCellStyle.SelectionForeColor = Color.Black;
   c.FillWeight = 50;
   GridView.Columns.Add(c);
  }
  /// <summary>
  /// 自动生成columns 没有修改和删除
  /// </summary>
  /// <param name="HeaderText"></param>
  /// <param name="DataPropertyNames"></param>
  /// <param name="GrdiView"></param>
  public void AutoColumn(string HeaderText, string DataPropertyNames, DataGridView GrdiView)
  {
   //去掉自动生成的列
   GrdiView.AutoGenerateColumns = false;
   GrdiView.RowHeadersDefaultCellStyle.SelectionBackColor = Color.DarkGray;
   //生成行标题标号的方法
   GrdiView.DataSource = System.Drawing.Imaging.ImageCodecInfo.GetImageDecoders();
   // 禁止用户改变DataGridView1的所有列的列宽
   GrdiView.AllowUserToResizeColumns = false;
   //禁止用户改变DataGridView1の所有行的行高
   GrdiView.AllowUserToResizeRows = false;
   //选择整行
   GrdiView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
   GrdiView.AllowDrop = false;
   //不可以添加行
   GrdiView.AllowUserToAddRows = false;
   //不可以删除行
   GrdiView.AllowUserToDeleteRows = false;
   //不可以手动对列重新定位
   GrdiView.AllowUserToOrderColumns = false;
   //不可以调整列的大小
   GrdiView.AllowUserToResizeColumns = false;
   //不可以调整行的大小
   GrdiView.AllowUserToResizeRows = false;
   //行标题行的宽度
   GrdiView.RowHeadersWidth = 32;
   //不能多选
   GrdiView.MultiSelect = false;
   //获取标题样式
   GrdiView.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
   string[] arrayHeaderText = HeaderText.Split(',');
   string[] arrayDataPropertyNames = DataPropertyNames.Split(',');
   for (int i = 0; i < arrayHeaderText.Length; i++)
   {
    DataGridViewTextBoxColumn d = new DataGridViewTextBoxColumn();
    //绑定数据库列名称
    d.DataPropertyName = arrayDataPropertyNames[i];
    //设置列标题的名称
    d.HeaderText = arrayHeaderText[i];
    //单元格选定时的背景色
    d.DefaultCellStyle.SelectionBackColor = Color.Gainsboro;
    d.DefaultCellStyle.SelectionForeColor = Color.Black;
    //单元格的内容居中
    d.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
    GrdiView.Columns.Add(d);
   }
   GrdiView.DataSource = null;
  }
  /// <summary>
  /// 找到刚刚添加成功的数据行s
  /// </summary>
  /// <param name="A"></param>
  /// <param name="GridView"></param>
  public void AutoFindRow(string A, DataGridView GridView)
  {
   //获取DataGridView中的总行数
   int rows = GridView.RowCount;

   //找到刚刚添加成功的数据行
   for (int i = 0; i < rows; i++)
   {
    string a = GridView.Rows[i].Cells[0].Value.ToString();
    if (a == A)
    {
     //选中整行
     GridView.Rows[i].Selected = true;
     //垂直滚动条,滚动到当前行索引位置
     GridView.FirstDisplayedScrollingRowIndex = i;
    }
    else
    {
     //清楚整行选中
     GridView.Rows[i].Selected = false;
    }
   }
  }

  /// <summary>
  /// 找到刚刚添加成功的数据行
  /// </summary>
  /// <param name="A"></param>
  /// <param name="GridView"></param>
  public void AutoFindRow(int A, DataGridView GridView)
  {
   //获取DataGridView中的总行数
   int rows = GridView.RowCount;

   //找到刚刚添加成功的数据行
   for (int i = 0; i < rows; i++)
   {
    int a = (int)GridView.Rows[i].Cells[0].Value;
    if (a == A)
    {
     //选中整行
     GridView.Rows[i].Selected = true;
     //垂直滚动条,滚动到当前行索引位置
     GridView.FirstDisplayedScrollingRowIndex = i;
    }
    else
    {
     //清楚整行选中
     GridView.Rows[i].Selected = false;
    }
   }
  }
 }
} 

挺简单的  一下是图书管理加载的数据方法 

private void BookInfoManager_UI_Load(object sender, EventArgs e)
  {
   #region DataGridView1绑定
   //需要添加列的列标题字符串
   string arraysHeaderText = @"图书编号,图书名称,登记时间,图书类型,作者,拼音码,翻译,语言,页数,价格,印刷版面,存放位置,ISBS码,版本,描述";
   //需要绑定数据库列名称的字符串
   string arraysName = @"BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark";

   //自动生成columns
   autocoumns.AutoColumn(arraysHeaderText, arraysName, dataGridView1);
   dataGridView1.DataSource = bookInfo_bll.selectBookInfo1().Tables[0];
   autocoumns.AddColumn("修改", dataGridView1);
   autocoumns.AddColumn("删除", dataGridView1);

   //DataGridView1数据集绑定
   this.dataGridView1.DataSource = bookInfo_bll.selectBookInfo1().Tables[0];
   //窗体加载时默认隐藏的列
   this.dataGridView1.Columns[14].Visible = false;
   this.dataGridView1.Columns[13].Visible = false;
   this.dataGridView1.Columns[12].Visible = false;
   this.dataGridView1.Columns[11].Visible = false;
   this.dataGridView1.Columns[10].Visible = false;
   #endregion

   #region 下拉框绑定

   DataGridViewColumnCollection columns = dataGridView1.Columns;

   for (int i = 0; i < columns.Count - 2; i++)
   {
    comboBox1.Items.Add(columns[i].HeaderText);
   }
   comboBox1.Items.Insert(0, "全部");
   comboBox1.SelectedIndex = 0;

   #endregion

   #region 树状图的绑定

   TreeViewBand();

   #endregion

   #region DgvHostory绑定

   string Header1 = @"图书编号,图书名称,读者编号,读者名称,借出时间,书应归还时间,实际归还时间,应付罚金,续借次数,借还描述";
   string PropertyNames1 = @"BookId,BookName,ReaderId,ReaderName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark";
   //自动生成columns
   autocoumns.AutoColumn(Header1, PropertyNames1, dgvHostory);

   #endregion
  }

源码下载:http://xiazai.jb51.net/201609/yuanma/C

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c#
图书管理系统
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。

时间: 2024-08-18 04:27:45

C#图书管理系统 附源码下载_C#教程的相关文章

winform分页控件 附源码下载_C#教程

以前都是从事B/S开发,由于公司有个比较大的C/S项目,在使用DATAGRIDVIEW的时候,显示数据量比较大,所以才用分页模式,也不知道这样是否正确.  想找个C/S下面的分页控件,都没有什么好的,就自己跟B/S下的分页控件,修改成WINFORM下面的.  首先创建一个用户控件名称为pager,在控件中拖入bindingNavigator和bindingSource,修改bindingNavigator,加入必要的一些控件.  效果如下: 代码实现如下: namespace WindowsAp

winfrom 打印表格 字符串的封装实现代码 附源码下载_C#教程

所以对于应用层用着还不是很方便.最近做一个项目顺便就封装了一个调用默认打印机的类.虽说有几个小bug,但对于目前来说,已经满足需求了.以后不够了在来升级吧. 1,关于打印上下左右边距和纸张的高宽.以往都把这些写死到代码里面.既然是调用默认打印机,打印机的型号自然有差异.所以我就把这些配置放到app.config里面.但又怕每次打印都加载config影响效率.故此设计了个PrintPaper类.里面所有属性都是静态的.还有一个静态的构造方法.这样只有在程序开始运行加载一次config.之后就直接从

jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)_jquery

弹出层主要用于展示丰富的页面信息,还有一个更好的应用是弹出表单层丰富交互应用.常见的应用有弹出登录表单层,用户提交登录信息,后台验证登录成功后,弹出层消失,主页面局部刷新用户信息.本文我们将给大家介绍如何使用jQuery+Ajax+PHP弹出层异步登录的应用. 效果展示        源码下载 HTML 由于本例UI部分使用了Bootstrap,以及使用jQuery插件,因此需要事先载入相关文件,推荐大家使用相关的CDN资源. <link rel="stylesheet" hre

Jquery插件之Fancybox丰富的弹出层效果附源码下载_jquery

Fancybox是一款优秀的jquery插件,它能够展示丰富的弹出层效果.前面我们有文章介绍了facybox弹出层效果,相比facybox,fancybox显得功能更为齐全,它除了可以加载DIV,图片.图片集.Ajax数据,还能加载SWF影片,iframe页面等等. 效果演示     源码下载 fancybox 特点: 可以支持图片.html 文本.flash 动画.iframe 以及 ajax 的支持: 可以自定义播放器的 css 样式: 可以以组的形式进行播放: 如果将鼠标滚动插件(mous

详解 PHP加密解密字符串函数附源码下载_php实例

项目中有时我们需要使用PHP将特定的信息进行加密,也就是通过加密算法生成一个加密字符串,这个加密后的字符串可以通过解密算法进行解密,便于程序对解密后的信息进行处理. 下面先给大家展示下效果图,感兴趣的朋友继续阅读全文. 效果演示     源码下载 笔者收录了一些比较经典的PHP加密解密函数代码,分享给大家.加密解密原理一般都是通过一定的加密解密算法,将密钥加入到算法中,最终得到加密解密结果. 1.非常给力的authcode加密函数,Discuz!经典代码(带详解): function authc

基于spring+hibernate+JQuery开发之电子相册(附源码下载)_java

项目结构: 开发之电子相册(附源码下载)_java-spring hibernate源码"> 项目首页: 注册页面: 上传图片: 效果图一: 效果图二: 效果图三: ============================================================= 下面是代码部分 ============================================================= 需要用到的数据库SQL: 复制代码 代码如下: drop dat

不依赖Flash和任何JS库实现文本复制与剪切附源码下载_javascript技巧

效果图如下: 我们在网页上放置一个复制按钮,主要用来方便用户复制链接之类的复杂文本,以往的做法是,通过JS依靠Flash,甚至借助jQuery庞大的js库来实现文本复制到剪贴板的.今天我要给大家介绍的是一款极现代的,不需要flash,不依赖任何其他js库的非常小的插件,它叫clipboard.js. 查看演示 下载源码 HTML 首先加载本地clipboard.js文件. 复制代码 代码如下: <script src="clipboard.min.js"></scri

基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)_jquery

这是一款基于jQuery的弹出对话框插件,这个jQuery对话框插件的最大特点是弹出和关闭都带有非常炫酷的动画特效,比如旋转飞入.上下抖动飞入等.效果图如下: 效果演示     源码下载 html代码: <div class="container"> <h1>jQuery gDialog Plugin Exampels</h1> <button class="btn demo-1">Alert Dialog Box&l

jQuery 自定义下拉框(DropDown)附源码下载_jquery

先给大家展示下效果图,喜欢的朋友可以下载源码哦 效果演示   源码下载 <section class="main"> <div class="wrapper-demo"> <div id="dd" class="wrapper-dropdown-1" tabindex="1"> <span>手册网</span> <ul class="