欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-26 08:42:32
用来练手还是不错的,分享大家看一下,还是一些新颖点的   !哈哈  就是自定义datagridview,方便每个功能部分调用!简单!再次...

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

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

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

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

只有超级管理员跟管理员

接下来看一下主界面 

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

更改datagridview数据列

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

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
 }

源码下载:csharplibrary(jb51.net).rar

关于管理系统的更多内容请点击《管理系统专题》进行学习

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