Browse Source

Automatic Commit By liuyuqi

liuyuqi-dellpc 2 years ago
commit
cc93611bd2
90 changed files with 19766 additions and 0 deletions
  1. BIN
      Data/Library.sql
  2. 46 0
      LibraryManager.sln
  3. 63 0
      LibraryManager/.gitattributes
  4. 340 0
      LibraryManager/.gitignore
  5. 42 0
      LibraryManager/BLL/Admin_BLL.cs
  6. 74 0
      LibraryManager/BLL/BLL.csproj
  7. 94 0
      LibraryManager/BLL/BookInfo_BLL.cs
  8. 42 0
      LibraryManager/BLL/BookType_BLL.cs
  9. 62 0
      LibraryManager/BLL/BorrowReturn_BLL.cs
  10. 42 0
      LibraryManager/BLL/Class_BLL.cs
  11. 42 0
      LibraryManager/BLL/Department_BLL.cs
  12. 36 0
      LibraryManager/BLL/Properties/AssemblyInfo.cs
  13. 45 0
      LibraryManager/BLL/ReaderType_BLL.cs
  14. 70 0
      LibraryManager/BLL/Reader_BLL.cs
  15. 168 0
      LibraryManager/Common/Com.cs
  16. 55 0
      LibraryManager/Common/Common.csproj
  17. 36 0
      LibraryManager/Common/Properties/AssemblyInfo.cs
  18. 85 0
      LibraryManager/DAL/Admin_DAL.cs
  19. 251 0
      LibraryManager/DAL/BookInfo_DAL.cs
  20. 75 0
      LibraryManager/DAL/BookType_DAL.cs
  21. 164 0
      LibraryManager/DAL/BorrowReturn_DAL.cs
  22. 76 0
      LibraryManager/DAL/Class_DAL.cs
  23. 68 0
      LibraryManager/DAL/DAL.csproj
  24. 116 0
      LibraryManager/DAL/DBhelp.cs
  25. 74 0
      LibraryManager/DAL/Department_DAL.cs
  26. 36 0
      LibraryManager/DAL/Properties/AssemblyInfo.cs
  27. 75 0
      LibraryManager/DAL/ReaderType_DAL.cs
  28. 199 0
      LibraryManager/DAL/Reader_DAL.cs
  29. 15 0
      LibraryManager/Model/Admin.cs
  30. 33 0
      LibraryManager/Model/BookInfo.cs
  31. 18 0
      LibraryManager/Model/BookType.cs
  32. 24 0
      LibraryManager/Model/BorrowReturn.cs
  33. 18 0
      LibraryManager/Model/Class.cs
  34. 18 0
      LibraryManager/Model/Department.cs
  35. 62 0
      LibraryManager/Model/Model.csproj
  36. 36 0
      LibraryManager/Model/Properties/AssemblyInfo.cs
  37. 27 0
      LibraryManager/Model/Reader.cs
  38. 18 0
      LibraryManager/Model/ReaderType.cs
  39. 9 0
      LibraryManager/Web/App.config
  40. 375 0
      LibraryManager/Web/FrmMain.Designer.cs
  41. 162 0
      LibraryManager/Web/FrmMain.cs
  42. 2660 0
      LibraryManager/Web/FrmMain.resx
  43. BIN
      LibraryManager/Web/Image/01.png
  44. 165 0
      LibraryManager/Web/Login.Designer.cs
  45. 58 0
      LibraryManager/Web/Login.cs
  46. 120 0
      LibraryManager/Web/Login.resx
  47. 22 0
      LibraryManager/Web/Program.cs
  48. 36 0
      LibraryManager/Web/Properties/AssemblyInfo.cs
  49. 73 0
      LibraryManager/Web/Properties/Resources.Designer.cs
  50. 124 0
      LibraryManager/Web/Properties/Resources.resx
  51. 30 0
      LibraryManager/Web/Properties/Settings.Designer.cs
  52. 7 0
      LibraryManager/Web/Properties/Settings.settings
  53. 376 0
      LibraryManager/Web/Views/Add.Designer.cs
  54. 405 0
      LibraryManager/Web/Views/Add.cs
  55. 120 0
      LibraryManager/Web/Views/Add.resx
  56. 499 0
      LibraryManager/Web/Views/BookInfoAdd_UI.Designer.cs
  57. 116 0
      LibraryManager/Web/Views/BookInfoAdd_UI.cs
  58. 434 0
      LibraryManager/Web/Views/BookInfoAdd_UI.resx
  59. 140 0
      LibraryManager/Web/Views/BookInfoExitRows_UI.Designer.cs
  60. 102 0
      LibraryManager/Web/Views/BookInfoExitRows_UI.cs
  61. 120 0
      LibraryManager/Web/Views/BookInfoExitRows_UI.resx
  62. 473 0
      LibraryManager/Web/Views/BookInfoExit_UI.Designer.cs
  63. 121 0
      LibraryManager/Web/Views/BookInfoExit_UI.cs
  64. 434 0
      LibraryManager/Web/Views/BookInfoExit_UI.resx
  65. 318 0
      LibraryManager/Web/Views/BookInfoManager_UI.Designer.cs
  66. 251 0
      LibraryManager/Web/Views/BookInfoManager_UI.cs
  67. 120 0
      LibraryManager/Web/Views/BookInfoManager_UI.resx
  68. 320 0
      LibraryManager/Web/Views/BorrowHostory_UI.Designer.cs
  69. 113 0
      LibraryManager/Web/Views/BorrowHostory_UI.cs
  70. 1593 0
      LibraryManager/Web/Views/BorrowHostory_UI.resx
  71. 254 0
      LibraryManager/Web/Views/BorrowManager_UI.Designer.cs
  72. 276 0
      LibraryManager/Web/Views/BorrowManager_UI.cs
  73. 1593 0
      LibraryManager/Web/Views/BorrowManager_UI.resx
  74. 85 0
      LibraryManager/Web/Views/Exit.Designer.cs
  75. 103 0
      LibraryManager/Web/Views/Exit.cs
  76. 120 0
      LibraryManager/Web/Views/Exit.resx
  77. 66 0
      LibraryManager/Web/Views/Info_UI.Designer.cs
  78. 134 0
      LibraryManager/Web/Views/Info_UI.cs
  79. 120 0
      LibraryManager/Web/Views/Info_UI.resx
  80. 502 0
      LibraryManager/Web/Views/ReaderAdd_UI.Designer.cs
  81. 136 0
      LibraryManager/Web/Views/ReaderAdd_UI.cs
  82. 1060 0
      LibraryManager/Web/Views/ReaderAdd_UI.resx
  83. 476 0
      LibraryManager/Web/Views/ReaderExit_UI.Designer.cs
  84. 140 0
      LibraryManager/Web/Views/ReaderExit_UI.cs
  85. 1060 0
      LibraryManager/Web/Views/ReaderExit_UI.resx
  86. 316 0
      LibraryManager/Web/Views/ReaderManager_UI.Designer.cs
  87. 265 0
      LibraryManager/Web/Views/ReaderManager_UI.cs
  88. 153 0
      LibraryManager/Web/Views/ReaderManager_UI.resx
  89. 231 0
      LibraryManager/Web/Web.csproj
  90. 35 0
      README.md

BIN
Data/Library.sql


+ 46 - 0
LibraryManager.sln

@@ -0,0 +1,46 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DAL", "LibraryManager\DAL\DAL.csproj", "{9AF87ECA-C92C-430A-ABB8-53794298FB19}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLL", "LibraryManager\BLL\BLL.csproj", "{D4F18D93-5F9C-4187-BFF2-3F144DC28252}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Model", "LibraryManager\Model\Model.csproj", "{534C572A-1C8D-46A3-A77D-322BDE5B1543}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common", "LibraryManager\Common\Common.csproj", "{F3A1FC10-4A67-4939-9C50-5948B6DDF7B3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Web", "LibraryManager\Web\Web.csproj", "{4C3D5D53-7AA1-44A9-BD68-8DFBB93797EB}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{9AF87ECA-C92C-430A-ABB8-53794298FB19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9AF87ECA-C92C-430A-ABB8-53794298FB19}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9AF87ECA-C92C-430A-ABB8-53794298FB19}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9AF87ECA-C92C-430A-ABB8-53794298FB19}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D4F18D93-5F9C-4187-BFF2-3F144DC28252}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D4F18D93-5F9C-4187-BFF2-3F144DC28252}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D4F18D93-5F9C-4187-BFF2-3F144DC28252}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D4F18D93-5F9C-4187-BFF2-3F144DC28252}.Release|Any CPU.Build.0 = Release|Any CPU
+		{534C572A-1C8D-46A3-A77D-322BDE5B1543}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{534C572A-1C8D-46A3-A77D-322BDE5B1543}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{534C572A-1C8D-46A3-A77D-322BDE5B1543}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{534C572A-1C8D-46A3-A77D-322BDE5B1543}.Release|Any CPU.Build.0 = Release|Any CPU
+		{F3A1FC10-4A67-4939-9C50-5948B6DDF7B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{F3A1FC10-4A67-4939-9C50-5948B6DDF7B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{F3A1FC10-4A67-4939-9C50-5948B6DDF7B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{F3A1FC10-4A67-4939-9C50-5948B6DDF7B3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4C3D5D53-7AA1-44A9-BD68-8DFBB93797EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4C3D5D53-7AA1-44A9-BD68-8DFBB93797EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4C3D5D53-7AA1-44A9-BD68-8DFBB93797EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4C3D5D53-7AA1-44A9-BD68-8DFBB93797EB}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 63 - 0
LibraryManager/.gitattributes

@@ -0,0 +1,63 @@
+###############################################################################
+# Set default behavior to automatically normalize line endings.
+###############################################################################
+* text=auto
+
+###############################################################################
+# Set default behavior for command prompt diff.
+#
+# This is need for earlier builds of msysgit that does not have it on by
+# default for csharp files.
+# Note: This is only used by command line
+###############################################################################
+#*.cs     diff=csharp
+
+###############################################################################
+# Set the merge driver for project and solution files
+#
+# Merging from the command prompt will add diff markers to the files if there
+# are conflicts (Merging from VS is not affected by the settings below, in VS
+# the diff markers are never inserted). Diff markers may cause the following 
+# file extensions to fail to load in VS. An alternative would be to treat
+# these files as binary and thus will always conflict and require user
+# intervention with every merge. To do so, just uncomment the entries below
+###############################################################################
+#*.sln       merge=binary
+#*.csproj    merge=binary
+#*.vbproj    merge=binary
+#*.vcxproj   merge=binary
+#*.vcproj    merge=binary
+#*.dbproj    merge=binary
+#*.fsproj    merge=binary
+#*.lsproj    merge=binary
+#*.wixproj   merge=binary
+#*.modelproj merge=binary
+#*.sqlproj   merge=binary
+#*.wwaproj   merge=binary
+
+###############################################################################
+# behavior for image files
+#
+# image files are treated as binary by default.
+###############################################################################
+#*.jpg   binary
+#*.png   binary
+#*.gif   binary
+
+###############################################################################
+# diff behavior for common document formats
+# 
+# Convert binary document formats to text before diffing them. This feature
+# is only available from the command line. Turn it on by uncommenting the 
+# entries below.
+###############################################################################
+#*.doc   diff=astextplain
+#*.DOC   diff=astextplain
+#*.docx  diff=astextplain
+#*.DOCX  diff=astextplain
+#*.dot   diff=astextplain
+#*.DOT   diff=astextplain
+#*.pdf   diff=astextplain
+#*.PDF   diff=astextplain
+#*.rtf   diff=astextplain
+#*.RTF   diff=astextplain

+ 340 - 0
LibraryManager/.gitignore

@@ -0,0 +1,340 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUNIT
+*.VisualState.xml
+TestResult.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# JustCode is a .NET coding add-in
+.JustCode
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- Backup*.rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# JetBrains Rider
+.idea/
+*.sln.iml
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb

+ 42 - 0
LibraryManager/BLL/Admin_BLL.cs

@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Model;
+using DAL;
+using System.Data;
+
+namespace BLL
+{
+    public class Admin_BLL
+    {
+        Admin_DAL aa = new Admin_DAL();
+
+        //删除管理员
+        public int deleteAdmin(String LoginId)
+        {
+            return aa.deleteAdmin(LoginId);
+        }
+        //修改管理员
+        public int ExitAdmin(Admin a)
+        {
+            return aa.ExitAdmin(a);
+        }
+        //添加管理员
+        public int AddAdmin(Admin a)
+        {
+            return aa.AddAdmin(a);
+        }
+        public DataSet selectAdmin()
+        {
+            return aa.selectAdmin();
+        }
+
+
+        public int Scalar(Admin a)
+        {
+            return aa.Scalar(a);
+        }
+    }
+}

+ 74 - 0
LibraryManager/BLL/BLL.csproj

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{D4F18D93-5F9C-4187-BFF2-3F144DC28252}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>BLL</RootNamespace>
+    <AssemblyName>BLL</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Admin_BLL.cs" />
+    <Compile Include="BookInfo_BLL.cs" />
+    <Compile Include="BookType_BLL.cs" />
+    <Compile Include="BorrowReturn_BLL.cs" />
+    <Compile Include="Class_BLL.cs" />
+    <Compile Include="Department_BLL.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ReaderType_BLL.cs" />
+    <Compile Include="Reader_BLL.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Common\Common.csproj">
+      <Project>{f3a1fc10-4a67-4939-9c50-5948b6ddf7b3}</Project>
+      <Name>Common</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\DAL\DAL.csproj">
+      <Project>{9af87eca-c92c-430a-abb8-53794298fb19}</Project>
+      <Name>DAL</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Model\Model.csproj">
+      <Project>{534c572a-1c8d-46a3-a77d-322bde5b1543}</Project>
+      <Name>Model</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 94 - 0
LibraryManager/BLL/BookInfo_BLL.cs

@@ -0,0 +1,94 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Model;
+using DAL;
+using System.Data;
+
+namespace BLL
+{
+    public class BookInfo_BLL
+    {
+        BookInfo_DAL b = new BookInfo_DAL();
+
+        /// <summary>
+        /// 查询BookInfo表
+        /// </summary>
+        /// <returns></returns>
+        public List<BookInfo> selectBookInfo()
+        {
+            return b.selectBookInfo();
+        }
+        /// <summary>
+        /// 查询BookInfo表
+        /// </summary>
+        /// <param name="BookId"></param>
+        /// <returns></returns>
+        public List<BookInfo> selectBookInfo(string BookId)
+        {
+            return b.selectBookInfo(BookId);
+        }
+        /// <summary>
+        /// 查询BookInfo表
+        /// </summary>
+        /// <returns></returns>
+        public DataSet selectBookInfo1()
+        {
+            return b.selectBookInfo1();
+        }
+        /// <summary>
+        /// 查询BookInfo表带条件
+        /// </summary>
+        /// <param name="index"></param>
+        /// <returns></returns>
+        public DataSet selectBookInfo1(int index)
+        {
+            return b.selectBookInfo1(index);
+        }
+        /// <summary>
+        /// 查询BookInfo表带条件
+        /// </summary>
+        /// <param name="A"></param>
+        /// <param name="B"></param>
+        /// <returns></returns>
+        public DataSet selectBookInfo1(string A, string B)
+        {
+            return b.selectBookInfo1(A, B);
+        }
+
+        //查询BookInfo表带条件 全部
+        public DataSet selectBookInfo1(List<string> list, string B)
+        {
+            return b.selectBookInfo1(list, B);
+        }
+
+        /// <summary>
+        /// 查询BookInfo表 目前可以借阅的图书
+        /// </summary>
+        /// <param name="BookId"></param>
+        /// <returns></returns>
+        public DataSet selectBookInfo2(string BookId)
+        {
+            return b.selectBookInfo2(BookId);
+        }
+        //修改图书信息
+        public int ExitBookInfo(BookInfo book)
+        {
+            return b.ExitBookInfo(book);
+        }
+
+        //添加图书信息
+        public int AddBookInfo(BookInfo book)
+        {
+            return b.AddBookInfo(book);
+        }
+
+        //删除图书信息
+        public int DeleteBookInfo(string BookId)
+        {
+            return b.DeleteBookInfo(BookId);
+        }
+    }
+}

+ 42 - 0
LibraryManager/BLL/BookType_BLL.cs

@@ -0,0 +1,42 @@
+using DAL;
+using Model;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BLL
+{
+    public class BookType_BLL
+    {
+        BookType_DAL bookType_dal = new BookType_DAL();
+        public List<BookType> selectBookType()
+        {
+            return bookType_dal.selectBookType();
+        }
+
+        public DataSet selectBookType1()
+        {
+            return bookType_dal.selectBookType1();
+        }
+
+        public int AddBookTypeInfo(BookType type)
+        {
+            return bookType_dal.AddBookTypeInfo(type);
+        }
+
+        //删除图书类型
+        public int deleteBookType(int BookTypeId)
+        {
+            return bookType_dal.deleteBookType(BookTypeId);
+        }
+
+        //修改图书类型
+        public int updateBookType(BookType type)
+        {
+            return bookType_dal.updateBookType(type);
+        }
+    }
+}

+ 62 - 0
LibraryManager/BLL/BorrowReturn_BLL.cs

@@ -0,0 +1,62 @@
+using DAL;
+using Model;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BLL
+{
+    public class BorrowReturn_BLL
+    {
+        BorrowReturn_DAL borrowReturn_dal = new BorrowReturn_DAL();
+
+        //查询借还表信息
+        public DataSet selectHostory(BorrowReturn b, string radioName, String cboBorrowTimeType, Boolean checkTime)
+        {
+            return borrowReturn_dal.selectHostory(b, radioName, cboBorrowTimeType, checkTime);
+        }
+        //借还表全部信息 包括现在借阅的和历史借阅的
+        public DataSet AllBorrowReturn()
+        {
+            return borrowReturn_dal.AllBorrowReturn();
+        }
+        //查询图书借还表
+        public DataSet selectBorrowReturn(string BookId)
+        {
+            return borrowReturn_dal.selectBorrowReturn(BookId);
+        }
+
+        //读者借阅记录
+        public DataSet ReaderBorrowReturn(string ReaderId)
+        {
+            return borrowReturn_dal.ReaderBorrowReturn(ReaderId);
+        }
+
+        //读者历史借阅记录
+        public DataSet ReaderBorrowReturn1(string ReaderId)
+        {
+            return borrowReturn_dal.ReaderBorrowReturn1(ReaderId);
+        }
+
+        //还书
+        public int ReturnBook(int BorrowReturnId)
+        {
+            return borrowReturn_dal.ReturnBook(BorrowReturnId);
+        }
+
+        //借书
+        public int BorrowBook(BorrowReturn b)
+        {
+            return borrowReturn_dal.BorrowBook(b);
+        }
+
+        //续借
+        public int RenewBook(BorrowReturn b)
+        {
+            return borrowReturn_dal.RenewBook(b);
+        }
+    }
+}

+ 42 - 0
LibraryManager/BLL/Class_BLL.cs

@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using DAL;
+using Model;
+using System.Data;
+
+namespace BLL
+{
+    public class Class_BLL
+    {
+        Class_DAL class_dal = new Class_DAL();
+        public List<Class> selectClass()
+        {
+            return class_dal.selectClass();
+        }
+
+        public DataSet selectClass1()
+        {
+            return class_dal.selectClass1();
+        }
+
+        public int AddClass(Class c)
+        {
+            return class_dal.AddClass(c);
+        }
+
+        //删除班级
+        public int deleteClass(int ClassId)
+        {
+            return class_dal.deleteClass(ClassId);
+        }
+
+        //修改班级
+        public int updateClass(Class c)
+        {
+            return class_dal.updateClass(c);
+        }
+    }
+}

+ 42 - 0
LibraryManager/BLL/Department_BLL.cs

@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using DAL;
+using Model;
+using System.Data;
+
+namespace BLL
+{
+    public class Department_BLL
+    {
+        Department_DAL department_dal = new Department_DAL();
+        public List<Department> selectDepartment()
+        {
+            return department_dal.selectDepartment();
+        }
+
+        public DataSet selectDepartment1()
+        {
+            return department_dal.selectDepartment1();
+        }
+
+        public int addDepartment(Department d)
+        {
+            return department_dal.addDepartment(d);
+        }
+
+        //删除院系
+        public int deleteDepartment(int DepartmentId)
+        {
+            return department_dal.deleteDepartment(DepartmentId);
+        }
+
+        //修改院系
+        public int updateDepartment(Department d)
+        {
+            return department_dal.updateDepartment(d);
+        }
+    }
+}

+ 36 - 0
LibraryManager/BLL/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("BLL")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("BLL")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。  如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("56508829-94db-4184-bb70-fcd4e4c5238c")]
+
+// 程序集的版本信息由下面四个值组成: 
+//
+//      主版本
+//      次版本 
+//      生成号
+//      修订号
+//
+// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”: 
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 45 - 0
LibraryManager/BLL/ReaderType_BLL.cs

@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using DAL;
+using Model;
+using System.Data;
+namespace BLL
+{
+    public class ReaderType_BLL
+    {
+        ReaderType_DAL reader_dal = new ReaderType_DAL();
+        //查询全部的读者类型
+        public List<ReaderType> selectReaderType()
+        {
+            return reader_dal.selectReaderType();
+        }
+
+        //查询全部的读者类型
+        public DataSet selectReaderType1()
+        {
+            return reader_dal.selectReaderType1();
+        }
+
+
+        //添加读者类型
+        public int addReaderType(ReaderType r)
+        {
+            return reader_dal.addReaderType(r);
+        }
+
+        //删除读者类型
+        public int deleteReader(int ReaderTypeId)
+        {
+            return reader_dal.deleteReader(ReaderTypeId);
+        }
+
+        //修改读者类型
+        public int updateReaderType(ReaderType r)
+        {
+            return reader_dal.updateReaderType(r);
+        }
+    }
+}

+ 70 - 0
LibraryManager/BLL/Reader_BLL.cs

@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using DAL;
+using Model;
+using System.Data;
+
+
+namespace BLL
+{
+    public class Reader_BLL
+    {
+        Reader_DAL reader_dal = new Reader_DAL();
+        //无条件查询读者信息
+        public DataSet selectReader()
+        {
+            return reader_dal.selectReader();
+        }
+
+        //根据ID查询全部的读者信息
+        public DataSet selectReader(int ReaderTypeId)
+        {
+            return reader_dal.selectReader(ReaderTypeId);
+        }
+
+        //根据查询内容和条件查询的读者信息
+        public DataSet selectReader(string A, string B)
+        {
+            return reader_dal.selectReader(A, B);
+        }
+
+        //根据查询条件查询的读者信息
+        public DataSet selectReader(List<string> list, string B)
+        {
+            return reader_dal.selectReader(list, B);
+        }
+
+        //删除读者信息
+        public int deleteReader(string ReaderId)
+        {
+            return reader_dal.deleteReader(ReaderId);
+        }
+
+        //根据ID查询的读者信息
+        public List<Reader> selectReader1(string ReaderId)
+        {
+            return reader_dal.selectReader1(ReaderId);
+        }
+
+        //修改读者信息
+        public int updateReader(Reader reader)
+        {
+            return reader_dal.updateReader(reader);
+        }
+
+        //添加读者信息
+        public int addReader(Reader r)
+        {
+            return reader_dal.addReader(r);
+        }
+
+        //返回读者编号,读者姓名
+        public List<Reader> selectReaderId(string ReaderId)
+        {
+            return reader_dal.selectReaderId(ReaderId);
+        }
+    }
+}

+ 168 - 0
LibraryManager/Common/Com.cs

@@ -0,0 +1,168 @@
+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;
+                }
+            }
+        }
+    }
+}

+ 55 - 0
LibraryManager/Common/Common.csproj

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{F3A1FC10-4A67-4939-9C50-5948B6DDF7B3}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Common</RootNamespace>
+    <AssemblyName>Common</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Com.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 36 - 0
LibraryManager/Common/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("Common")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Common")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。  如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("14c13f05-90ff-4cf8-9f0d-fc68ef309436")]
+
+// 程序集的版本信息由下面四个值组成: 
+//
+//      主版本
+//      次版本 
+//      生成号
+//      修订号
+//
+// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”: 
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 85 - 0
LibraryManager/DAL/Admin_DAL.cs

@@ -0,0 +1,85 @@
+using Model;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DAL
+{
+    public class Admin_DAL
+    {
+        /// <summary>
+        /// 查询全部
+        /// </summary>
+        /// <returns></returns>
+        public DataSet selectAdmin()
+        {
+            string sql = @"select * from Admin";
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+        /// <summary>
+        /// 删除管理员
+        /// </summary>
+        /// <param name="LoginId"></param>
+        /// <returns></returns>
+        public int deleteAdmin(string LoginId)
+        {
+            string sql = "delete from Admin where LoginId=@LoginId";
+            SqlParameter[] sp ={
+                                  new SqlParameter("@LoginId",LoginId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+        /// <summary>
+        /// 修改管理员
+        /// </summary>
+        /// <param name="a"></param>
+        /// <returns></returns>
+        public int ExitAdmin(Admin a)
+        {
+            string sql = "update Admin set LoginId=@LoginId,LoginPwd=@LoginPwd,LoginType=@LoginType,LoginRemark=@LoginRemark where LoginId=@LoginId";
+            SqlParameter[] sp = { 
+                                new SqlParameter("LoginId",a.LoginId),
+                                new SqlParameter("LoginPwd",a.LoginPwd),
+                                new SqlParameter("LoginType",a.LoginType),
+                                new SqlParameter("LoginRemark",a.LoginRemark)
+                                };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+        /// <summary>
+        /// 添加管理员
+        /// </summary>
+        /// <param name="a"></param>
+        /// <returns></returns>
+        public int AddAdmin(Admin a)
+        {
+            string sql = "insert into Admin select @LoginId,@LoginPwd,@LoginType,@LoginRemark";
+            SqlParameter[] sp ={
+                                new SqlParameter("LoginId",a.LoginId),
+                                new SqlParameter("LoginPwd",a.LoginPwd),
+                                new SqlParameter("LoginType",a.LoginType),
+                                new SqlParameter("LoginRemark",a.LoginRemark)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+
+        /// <summary>
+        /// 查询相同用户
+        /// </summary>
+        /// <param name="a"></param>
+        /// <returns></returns>
+        public int Scalar(Admin a)
+        {
+            string sql = "select COUNT(*) from Admin where LoginId=@LoginId and LoginPwd=@LoginPwd and LoginType=@LoginType";
+            SqlParameter[] sp ={
+                                new SqlParameter("@LoginId",a.LoginId),
+                                new SqlParameter("@LoginPwd",a.LoginPwd),
+                                new SqlParameter("@LoginType",a.LoginType)
+                              };
+            return DBhelp.Create().ExecuteScalar(sql, sp);
+        }
+    }
+}

+ 251 - 0
LibraryManager/DAL/BookInfo_DAL.cs

@@ -0,0 +1,251 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Model;
+using System.Data.SqlClient;
+using System.Data;
+
+namespace DAL
+{
+    public class BookInfo_DAL
+    {
+        /// <summary>
+        /// 查询BookInfo表
+        /// </summary>
+        /// <returns></returns>
+        public List<BookInfo> selectBookInfo()
+        {
+            string sql = @"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,
+                            BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark from BookInfo
+                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId";
+            List<BookInfo> list = new List<BookInfo>();
+            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql);
+            while (reader.Read())
+            {
+                BookInfo b = new BookInfo();
+                b.BookId = reader.GetString(0);
+                b.BookName = reader.GetString(1);
+                b.TimeIn = reader.GetDateTime(2);
+                b.BookType = new BookType();
+                b.BookType.BookTypeName = reader.GetString(3);
+                b.Author = reader.GetString(4);
+                b.PinYinCode = reader.GetString(5);
+                b.Translator = reader.GetString(6);
+                b.Language = reader.GetString(7);
+                b.BookNumber = reader.GetString(8);
+                b.Price = reader.GetString(9);
+                b.Layout = reader.GetString(10);
+                b.Address = reader.GetString(11);
+                b.ISBS = reader.GetString(12);
+                b.Versions = reader.GetString(13);
+                b.BookRemark = reader.GetString(14);
+                list.Add(b);
+            }
+            reader.Close();
+            return list;
+        }
+        /// <summary>
+        /// 根据ID查询bookinfo表
+        /// </summary>
+        /// <param name="BookId"></param>
+        /// <returns></returns>
+        public List<BookInfo> selectBookInfo(string BookId)
+        {
+            string sql = @"select BookId,BookName,TimeIn,BookTypeId,Author,PinYinCode,Translator,Language,BookNumber, Price,Layout,Address,ISBS,Versions,BookRemark from BookInfo where BookId=@BookId";
+            SqlParameter[] sp ={
+                                new SqlParameter("@BookId",BookId)
+                              };
+            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql, sp);
+            List<BookInfo> list = new List<BookInfo>();
+            while (reader.Read())
+            {
+                BookInfo b = new BookInfo();
+                b.BookId = reader.GetString(0);
+                b.BookName = reader.GetString(1);
+                b.TimeIn = reader.GetDateTime(2);
+                b.BookTypeId = reader.GetInt32(3);
+                b.Author = reader.GetString(4);
+                b.PinYinCode = reader.GetString(5);
+                b.Translator = reader.GetString(6);
+                b.Language = reader.GetString(7);
+                b.BookNumber = reader.GetString(8);
+                b.Price = reader.GetString(9);
+                b.Layout = reader.GetString(10);
+                b.Address = reader.GetString(11);
+                b.ISBS = reader.GetString(12);
+                b.Versions = reader.GetString(13);
+                b.BookRemark = reader.GetString(14);
+                list.Add(b);
+            }
+            reader.Close();
+            return list;
+        }
+
+
+        /// <summary>
+        /// 查询BookInfo表
+        /// </summary>
+        /// <returns></returns>
+        public DataSet selectBookInfo1()
+        {
+            string sql = @"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark from BookInfo inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId";
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+        public DataSet selectBook;
+
+        /// <summary>
+        /// 查询BookInfo表 目前可以借阅的图书
+        /// </summary>
+        /// <param name="BookId"></param>
+        /// <returns></returns>
+        public DataSet selectBookInfo2(string BookId)
+        {
+            string sql = @"select BookInfo.BookId as 'BookId',BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,
+                    BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark from BookInfo
+                    inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
+                   
+                    where BookInfo.BookId like '%'+@BookId+'%' and BookInfo.BookId not in(select BookId from BorrowReturn where FactReturnTime is null )";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BookId",BookId)
+                              };
+            return DBhelp.Create().ExecuteAdater(sql, sp: sp);
+        }
+        /// <summary>
+        /// 根据条件查询bookinfo表
+        /// </summary>
+        /// <param name="index"></param>
+        /// <returns></returns>
+        public DataSet selectBookInfo1(int index)
+        {
+            string sql = @"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,
+                            BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark from BookInfo
+                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
+                            where BookType.BookTypeId=@BookTypeId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BookTypeId",index)
+                              };
+            return DBhelp.Create().ExecuteAdater(sql, sp);
+        }
+
+        /// <summary>
+        /// 根据条件查询bookinfo表
+        /// </summary>
+        /// <param name="A"></param>
+        /// <param name="B"></param>
+        /// <returns></returns>
+        public DataSet selectBookInfo1(string A, string B)
+        {
+            string sql = string.Format(@"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,
+                            BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark from BookInfo
+                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
+                            where {0} like '%{1}%'", A, B);
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+        /// <summary>
+        /// 查询BookInfo表 带全部查询(表中所有相关的字段)
+        /// </summary>
+        /// <param name="list"></param>
+        /// <param name="B"></param>
+        /// <returns></returns>
+        public DataSet selectBookInfo1(List<string> list, string B)
+        {
+            string sql = "";
+            for (int i = 0; i < list.Count; i++)
+            {
+                if (i != list.Count - 1)
+                {
+                    sql += string.Format(@"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,
+                            BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark from BookInfo
+                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
+                            where {0} like '%{1}%' union  ", list[i], B);
+                }
+                else
+                {
+                    sql += string.Format(@"select BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,
+                            BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark from BookInfo
+                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
+                            where {0} like '%{1}%' ", list[i], B);
+                }
+
+            }
+
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+        /// <summary>
+        /// 添加图书信息
+        /// </summary>
+        /// <param name="book"></param>
+        /// <returns></returns>
+        public int AddBookInfo(BookInfo book)
+        {
+            string sql = @"insert into BookInfo select @BookId,@BookName,@TimeIn,@BookTypeId,@Author,
+                    @PinYinCode,@Translator,@Language,@BookNumber,@Price,@Layout,@Address,@ISBS,@Versions,@BookRemark";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BookId",book.BookId),
+                                   new SqlParameter("@BookName",book.BookName),
+                                   new SqlParameter("@TimeIn",book.TimeIn),
+                                   new SqlParameter("@BookTypeId",book.BookTypeId),
+                                   new SqlParameter("@Author",book.Author),
+                                   new SqlParameter("@PinYinCode",book.PinYinCode),
+                                   new SqlParameter("@Translator",book.Translator),
+                                   new SqlParameter("@Language",book.Language),
+                                   new SqlParameter("@BookNumber",book.BookNumber),
+                                   new SqlParameter("@Price",book.Price),
+                                   new SqlParameter("@Layout",book.Layout),
+                                   new SqlParameter("@Address",book.Address),
+                                   new SqlParameter("@ISBS",book.ISBS),
+                                   new SqlParameter("@Versions",book.Versions),
+                                   new SqlParameter("@BookRemark",book.BookRemark),
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+        /// <summary>
+        /// 修改图书信息
+        /// </summary>
+        /// <param name="book"></param>
+        /// <returns></returns>
+        public int ExitBookInfo(BookInfo book)
+        {
+            string sql = @"update BookInfo set BookName=@BookName,TimeIn=@TimeIn,BookTypeId=@BookTypeId,
+            Author=@Author,PinYinCode=@PinYinCode,Translator=@Translator,Language=@Language,BookNumber=@BookNumber,
+            Price=@Price,Layout=@Layout,Address=@Address,ISBS=@ISBS,Versions=@Versions,BookRemark=@BookRemark
+            where BookId=@BookId";
+            SqlParameter[] sp ={
+                                    new SqlParameter("@BookName",book.BookName),
+                                    new SqlParameter("@TimeIn",book.TimeIn),
+                                    new SqlParameter("@BookTypeId",book.BookTypeId),
+                                    new SqlParameter("@Author",book.Author),
+                                    new SqlParameter("@PinYinCode",book.PinYinCode),
+                                    new SqlParameter("@Translator",book.Translator),
+                                    new SqlParameter("@Language",book.Language),
+                                    new SqlParameter("@BookNumber",book.BookNumber),
+                                    new SqlParameter("@Price",book.Price),
+                                    new SqlParameter("@Layout",book.Layout),
+                                    new SqlParameter("@Address",book.Address),
+                                    new SqlParameter("@ISBS",book.ISBS),
+                                    new SqlParameter("@Versions",book.Versions),
+                                    new SqlParameter("@BookRemark",book.BookRemark),
+                                    new SqlParameter("@BookId",book.BookId)
+                              };
+
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+        /// <summary>
+        /// 根据Id删除
+        /// </summary>
+        /// <param name="BookId"></param>
+        /// <returns></returns>
+        public int DeleteBookInfo(string BookId)
+        {
+            string sql = @"
+                            delete from BorrowReturn where BookId=@BookId
+                            delete from BookInfo where BookId=@BookId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BookId",BookId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+    }
+}

+ 75 - 0
LibraryManager/DAL/BookType_DAL.cs

@@ -0,0 +1,75 @@
+using Model;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DAL
+{
+    public class BookType_DAL
+    {
+        public List<BookType> selectBookType()
+        {
+            string sql = "select *  from BookType";
+            List<BookType> list = new List<BookType>();
+            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql);
+            while (reader.Read())
+            {
+                BookType b = new BookType();
+                b.BookTypeId = reader.GetInt32(0);
+                b.BookTypeName = reader.GetString(1);
+                list.Add(b);
+            }
+            reader.Close();
+            return list;
+        }
+        public DataSet selectBookType1()
+        {
+            string sql = "select BookTypeId,BookTypeName from BookType";
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+
+        public int AddBookTypeInfo(BookType type)
+        {
+            string sql = "proc_AddBookTypeInfo";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BookTypeId",SqlDbType.Int),
+                                   new SqlParameter("@BookTypeName",type.BookTypeName),
+                                   new SqlParameter("@ReturnValue",SqlDbType.Int)
+                              };
+            sp[0].Direction = ParameterDirection.Output;
+            sp[2].Direction = ParameterDirection.ReturnValue;
+            DBhelp.Create().ExecuteNonQuery(sql,CommandType.StoredProcedure, sp);
+
+            type.BookTypeId = (int)sp[0].Value;
+            return (int)sp[2].Value;
+        }
+
+        //删除图书类型
+        public int deleteBookType(int BookTypeId)
+        {
+            string sql = @"delete from BorrowReturn where BookId in(select BookId from BookInfo where BookTypeId=@BookTypeId)
+                            delete from BookInfo where BookTypeId=@BookTypeId
+                            delete from BookType where BookTypeId=@BookTypeId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BookTypeId",BookTypeId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp:sp);
+        }
+
+
+        //修改图书类型
+        public int updateBookType(BookType type)
+        {
+            string sql = "update BookType set BookTypeName=@BookTypeName where BookTypeId=@BookTypeId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BookTypeId",type.BookTypeId),
+                                   new SqlParameter("@BookTypeName",type.BookTypeName)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+    }
+}

+ 164 - 0
LibraryManager/DAL/BorrowReturn_DAL.cs

@@ -0,0 +1,164 @@
+using Model;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DAL
+{
+    public class BorrowReturn_DAL
+    {
+        //查询借还表信息
+        public DataSet selectHostory(BorrowReturn b, string radioName, String cboBorrowTimeType, Boolean checkTime)
+        {
+            string sql = string.Format(@"select BookInfo.BookId as 'BookId',Reader.ReaderId as 'ReaderId',BookName,ReaderName,
+                            BookTypeName,ReaderTypeName,Gender,IdentityCard,
+                            BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount
+                            from BorrowReturn
+                            inner join BookInfo on BookInfo.BookId=BorrowReturn.BookId
+                            inner join Reader on Reader.ReaderId=BorrowReturn.ReaderId
+                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
+                            inner join ReaderType on ReaderType.ReaderTypeId=Reader.ReaderTypeId
+                            where BookInfo.BookId like '%{0}%' and 
+                            Reader.ReaderId like '%{1}%' ", b.BookId, b.ReaderId);
+            if (radioName == "全部")
+            {
+
+            }
+            else if (radioName == "已借")
+            {
+                sql += " and FactReturnTime	is  null ";
+            }
+            else if (radioName == "已还")
+            {
+                sql += " and FactReturnTime	is not null ";
+            }
+            if (checkTime)
+            {
+                if (cboBorrowTimeType == "日期")
+                {
+                    sql += string.Format(@" and BorrowId in(
+                                        select BorrowId from BorrowReturn where BorrowTime between '{0}' and '{1}' union
+                                        select BorrowId from BorrowReturn where ReturnTime between '{0}' and '{1}' union
+                                        select BorrowId from BorrowReturn where FactReturnTime between '{0}' and '{1}'
+                                        ) ", b.TimeIn, b.TimeOut);
+                }
+                else if (cboBorrowTimeType == "借书日期")
+                {
+                    sql += @" and BorrowTime between '" + b.TimeIn + "' and '" + b.TimeOut + "' ";
+                }
+                else if (cboBorrowTimeType == "应还书日期")
+                {
+                    sql += @" and ReturnTime between '" + b.TimeIn + "' and  '" + b.TimeOut + "' ";
+                }
+                else if (cboBorrowTimeType == "实际还书日期")
+                {
+                    sql += @" and FactReturnTime between '" + b.TimeIn + "' and '" + b.TimeOut + "' ";
+                }
+            }
+
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+
+        //借还表全部信息 包括现在借阅的和历史借阅的
+        public DataSet AllBorrowReturn()
+        {
+            string sql = @"select BookInfo.BookId as 'BookId',Reader.ReaderId as 'ReaderId',BookName,ReaderName,
+                            BookTypeName,ReaderTypeName,Gender,IdentityCard,
+                            BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount
+                            from BorrowReturn
+                            inner join BookInfo on BookInfo.BookId=BorrowReturn.BookId
+                            inner join Reader on Reader.ReaderId=BorrowReturn.ReaderId
+                            inner join BookType on BookType.BookTypeId=BookInfo.BookTypeId
+                            inner join ReaderType on ReaderType.ReaderTypeId=Reader.ReaderTypeId";
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+
+        //查询图书借还表(表连接)
+        public DataSet selectBorrowReturn(string BookId)
+        {
+            string sql = @"select BookInfo.BookId,BookName,Reader.ReaderId,ReaderName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark from BookInfo
+                    inner join BorrowReturn on BorrowReturn.BookId=BookInfo.BookId
+                    inner join Reader on Reader.ReaderId=BorrowReturn.ReaderId 
+                    where BookInfo.BookId=@BookId ";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BookId",BookId)
+                              };
+
+            return DBhelp.Create().ExecuteAdater(sql, sp);
+        }
+
+
+        //读者借阅记录
+        public DataSet ReaderBorrowReturn(string ReaderId)
+        {
+            string sql = @"select BorrowId,Reader.ReaderId as 'ReaderId',ReaderName,BookInfo.BookId as 'BookId',BookName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark from Reader
+                            inner join BorrowReturn on BorrowReturn.ReaderId=Reader.ReaderId
+                            inner join BookInfo on BookInfo.BookId=BorrowReturn.BookId
+                            where Reader.ReaderId=@ReaderId and FactReturnTime is null ";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderId",ReaderId)
+                              };
+            return DBhelp.Create().ExecuteAdater(sql, sp);
+        }
+
+        //读者历史借阅记录
+        public DataSet ReaderBorrowReturn1(string ReaderId)
+        {
+            string sql = @"select BorrowId,Reader.ReaderId as 'ReaderId',ReaderName,BookInfo.BookId as 'BookId',BookName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark from Reader
+                            inner join BorrowReturn on BorrowReturn.ReaderId=Reader.ReaderId
+                            inner join BookInfo on BookInfo.BookId=BorrowReturn.BookId
+                            where Reader.ReaderId=@ReaderId and FactReturnTime is not null ";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderId",ReaderId)
+                              };
+            return DBhelp.Create().ExecuteAdater(sql, sp);
+        }
+
+        //还书
+        public int ReturnBook(int BorrowReturnId)
+        {
+            string sql = @"update BorrowReturn set FactReturnTime=@FactReturnTime,RenewCount=0 where BorrowId=@BorrowId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@FactReturnTime",DateTime.Now),
+                                   new SqlParameter("@BorrowId",BorrowReturnId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+
+        //借书
+        public int BorrowBook(BorrowReturn b)
+        {
+            string sql = "proc_BorrowBook";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BorrowId",DbType.Int32),
+                                   new SqlParameter("@BookId",b.BookId),
+                                   new SqlParameter("@ReaderId",b.ReaderId),
+                                   new SqlParameter("@BorrowTime",b.BorrowTime),
+                                   new SqlParameter("@ReturnTime",b.ReturnTime),
+                                   new SqlParameter("@Fine",b.Fine),
+                                   new SqlParameter("@RenewCount",b.RenewCount),
+                                   new SqlParameter("@BorrowRemark",b.BorrowRemark),
+                                   new SqlParameter("@ReturnValue",DbType.Int32)
+                              };
+            sp[0].Direction = ParameterDirection.Output;
+            sp[sp.Length - 1].Direction = ParameterDirection.ReturnValue;
+            DBhelp.Create().ExecuteNonQuery(sql, CommandType.StoredProcedure, sp);
+            b.BorrowId = (int)sp[0].Value;
+            return (int)sp[sp.Length - 1].Value;
+        }
+
+        //续借
+        public int RenewBook(BorrowReturn b)
+        {
+            string sql = @"update BorrowReturn set ReturnTime=dateadd(month,3,ReturnTime),RenewCount=RenewCount+1 where BorrowId=@BorrowId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@BorrowId",b.BorrowId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+    }
+}

+ 76 - 0
LibraryManager/DAL/Class_DAL.cs

@@ -0,0 +1,76 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Model;
+using System.Data;
+using System.Data.SqlClient;
+
+namespace DAL
+{
+    public class Class_DAL
+    {
+        public List<Class> selectClass()
+        {
+            string sql = "select * from Class";
+            List<Class> list = new List<Class>();
+            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql);
+            while (reader.Read())
+            {
+                Class c = new Class();
+                c.ClassId = reader.GetInt32(0);
+                c.ClassName = reader.GetString(1);
+                list.Add(c);
+            }
+            reader.Close();
+            return list;
+        }
+
+
+        public DataSet selectClass1()
+        {
+            string sql = "select * from Class";
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+
+        public int AddClass(Class c)
+        {
+            string sql = "proc_addClass";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ClassId",DbType.Int32),
+                                   new SqlParameter("@ClassName",c.ClassName),
+                                   new SqlParameter("@ReturnValue",DbType.Int32)
+                              };
+            sp[0].Direction = ParameterDirection.Output;
+            sp[2].Direction = ParameterDirection.ReturnValue;
+            DBhelp.Create().ExecuteNonQuery(sql, CommandType.StoredProcedure, sp);
+            c.ClassId = (int)sp[0].Value;
+            return (int)sp[2].Value;
+        }
+
+        //删除班级
+        public int deleteClass(int ClassId)
+        {
+            string sql = @"delete from Reader where ClassId=@ClassId
+                            delete from Class where ClassId=@ClassId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ClassId",ClassId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+
+        }
+
+        //修改班级
+        public int updateClass(Class c)
+        {
+            string sql = "update Class set ClassName=@ClassName where ClassId=@ClassId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ClassId",c.ClassId),
+                                   new SqlParameter("@ClassName",c.ClassName)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+
+        }
+    }
+}

+ 68 - 0
LibraryManager/DAL/DAL.csproj

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{9AF87ECA-C92C-430A-ABB8-53794298FB19}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>DAL</RootNamespace>
+    <AssemblyName>DAL</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Admin_DAL.cs" />
+    <Compile Include="BookInfo_DAL.cs" />
+    <Compile Include="BookType_DAL.cs" />
+    <Compile Include="BorrowReturn_DAL.cs" />
+    <Compile Include="Class_DAL.cs" />
+    <Compile Include="DBhelp.cs" />
+    <Compile Include="Department_DAL.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="ReaderType_DAL.cs" />
+    <Compile Include="Reader_DAL.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\Model\Model.csproj">
+      <Project>{534c572a-1c8d-46a3-a77d-322bde5b1543}</Project>
+      <Name>Model</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 116 - 0
LibraryManager/DAL/DBhelp.cs

@@ -0,0 +1,116 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Model;
+using System.Data.SqlClient;
+using System.Configuration;
+using System.Data;
+
+namespace DAL
+{
+    public class DBhelp
+    {
+        private DBhelp() { }
+        private static DBhelp dbhelp = null;
+        public static DBhelp Create()
+        {
+            if (dbhelp == null)
+                dbhelp = new DBhelp();
+            return dbhelp;
+        }
+
+        string conString = ConfigurationManager.ConnectionStrings["a"].ConnectionString;
+
+        //返回一行一列
+        public int ExecuteScalar(string sql, params SqlParameter[] sp)
+        {
+            SqlConnection con = new SqlConnection(conString);
+
+            try
+            {
+                con.Open();
+                SqlCommand com = new SqlCommand(sql, con);
+                com.Parameters.AddRange(sp);
+                return (int)com.ExecuteScalar();
+            }
+            catch (Exception)
+            {
+                con.Close();
+                throw;
+            }
+            finally
+            {
+                con.Close();
+            }
+            
+        }
+
+        //返回读取器对象
+        public SqlDataReader ExecuteReader(string sql, params SqlParameter[] sp)
+        {
+            SqlConnection con = new SqlConnection(conString);
+            try
+            {
+                con.Open();
+                SqlCommand com = new SqlCommand(sql, con);
+                com.Parameters.AddRange(sp);
+                return com.ExecuteReader(CommandBehavior.CloseConnection);
+            }
+            catch (Exception ex)
+            {
+                con.Close();
+                throw ex;
+            }
+        }
+
+        //返回数据集,
+        public DataSet ExecuteAdater(string sql, params SqlParameter[] sp)
+        {
+            SqlConnection con = new SqlConnection(conString);
+
+            try
+            {
+                SqlCommand com = new SqlCommand(sql, con);
+                com.Parameters.AddRange(sp);
+                SqlDataAdapter adapter = new SqlDataAdapter(com);
+                DataSet ds = new DataSet();
+                adapter.Fill(ds, "a");
+                return ds;
+            }
+            catch (Exception)
+            {
+                throw;
+            }
+            finally
+            {
+                con.Close();
+            }
+
+
+        }
+
+        //返回受影响行数
+        public int ExecuteNonQuery(string sql, CommandType type = CommandType.Text, params SqlParameter[] sp)
+        {
+            SqlConnection con = new SqlConnection(conString);
+            try
+            {
+                con.Open();
+                SqlCommand com = new SqlCommand(sql, con);
+                com.Parameters.AddRange(sp);
+                com.CommandType = type;
+                return com.ExecuteNonQuery();
+            }
+            catch (Exception)
+            {
+                con.Close();
+                throw;
+            }
+            finally
+            {
+                con.Close();
+            }
+        }
+    }
+}

+ 74 - 0
LibraryManager/DAL/Department_DAL.cs

@@ -0,0 +1,74 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Model;
+using System.Data;
+using System.Data.SqlClient;
+
+namespace DAL
+{
+    public class Department_DAL
+    {
+        public List<Department> selectDepartment()
+        {
+            string sql = "select * from Department";
+            List<Department> list = new List<Department>();
+            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql);
+            while (reader.Read())
+            {
+                Department d = new Department();
+                d.DepartmentId = (int)reader["DepartmentId"];
+                d.DepartmentName = reader["DepartmentName"].ToString();
+                list.Add(d);
+            }
+            reader.Close();
+            return list;
+        }
+        public DataSet selectDepartment1()
+        {
+            string sql = "select * from Department";
+
+            return DBhelp.Create().ExecuteAdater(sql); ;
+        }
+
+        public int addDepartment(Department d)
+        {
+            string sql = "proc_addDepartment";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@DepartmentId",DbType.Int32),
+                                   new SqlParameter("@DepartmentName",d.DepartmentName),
+                                   new SqlParameter("@ReturnValue",DbType.Int32)
+                              };
+            sp[0].Direction = ParameterDirection.Output;
+            sp[2].Direction = ParameterDirection.ReturnValue;
+            DBhelp.Create().ExecuteNonQuery(sql, CommandType.StoredProcedure, sp);
+            d.DepartmentId = (int)sp[0].Value;
+            return (int)sp[2].Value;
+
+        }
+        //删除院系
+        public int deleteDepartment(int DepartmentId)
+        {
+            string sql = @"delete from Reader where DepartmentId=@DepartmentId
+                            delete from Department where DepartmentId=@DepartmentId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@DepartmentId",DepartmentId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+
+        //修改院系
+        public int updateDepartment(Department d)
+        {
+            string sql = "update Department set DepartmentName=@DepartmentName where DepartmentId=@DepartmentId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@DepartmentId",d.DepartmentId),
+                                   new SqlParameter("@DepartmentName",d.DepartmentName)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+
+    }
+}

+ 36 - 0
LibraryManager/DAL/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("DAL")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("DAL")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。  如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("aa1f6ea9-d7f8-4ac5-9b21-813cc209d14c")]
+
+// 程序集的版本信息由下面四个值组成: 
+//
+//      主版本
+//      次版本 
+//      生成号
+//      修订号
+//
+// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”: 
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 75 - 0
LibraryManager/DAL/ReaderType_DAL.cs

@@ -0,0 +1,75 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Model;
+using System.Data.SqlClient;
+using System.Data;
+
+namespace DAL
+{
+    public class ReaderType_DAL
+    {
+        //查询全部的读者类型
+        public List<ReaderType> selectReaderType()
+        {
+            List<ReaderType> list = new List<ReaderType>();
+            string sql = @"select * from ReaderType";
+            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql);
+            while (reader.Read())
+            {
+                ReaderType type = new ReaderType();
+                type.ReaderTypeId = reader.GetInt32(0);
+                type.ReaderTypeName = reader.GetString(1);
+                list.Add(type);
+            }
+            reader.Close();
+            return list;
+        }
+        //查询全部的读者类型
+        public DataSet selectReaderType1()
+        {
+            string sql = @"select * from ReaderType";
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+
+        //添加读者类型
+        public int addReaderType(ReaderType r)
+        {
+            string sql = "proc_addReaderType";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderTypeId",DbType.Int32),
+                                   new SqlParameter("@ReaderTypeName",r.ReaderTypeName),
+                                   new SqlParameter("@ReturnValue",DbType.Int32)
+                              };
+            sp[0].Direction = ParameterDirection.Output;
+            sp[2].Direction = ParameterDirection.ReturnValue;
+            DBhelp.Create().ExecuteNonQuery(sql, CommandType.StoredProcedure, sp);
+            r.ReaderTypeId = (int)sp[0].Value;
+            return (int)sp[2].Value;
+        }
+        //删除读者类型
+        public int deleteReader(int ReaderTypeId)
+        {
+            string sql = @"delete from BorrowReturn where ReaderId in(select ReaderId from Reader where ReaderTypeId=@ReaderTypeId)
+                            delete from Reader where ReaderTypeId=@ReaderTypeId
+                            delete from ReaderType where ReaderTypeId=@ReaderTypeId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderTypeId",ReaderTypeId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+
+        //修改读者类型
+        public int updateReaderType(ReaderType r)
+        {
+            string sql = "update ReaderType set ReaderTypeName=@ReaderTypeName where ReaderTypeId=@ReaderTypeId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderTypeId",r.ReaderTypeId),
+                                   new SqlParameter("@ReaderTypeName",r.ReaderTypeName)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+    }
+}

+ 199 - 0
LibraryManager/DAL/Reader_DAL.cs

@@ -0,0 +1,199 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Model;
+using System.Data.SqlClient;
+using System.Data;
+
+namespace DAL
+{
+    public class Reader_DAL
+    {
+        //无条件查询读者信息
+        public DataSet selectReader()
+        {
+            string sql = @"select ReaderId,ReaderName,TimeIn,TimeOut,ReaderTypeName,DepartmentName,ClassName,IdentityCard,Gender,Special,Phone,Email,Address,ReaderRemark from Reader 
+                            inner join ReaderType on ReaderType.ReaderTypeId=Reader.ReaderTypeId
+                            inner join Department on Department.DepartmentId=Reader.DepartmentId
+                            inner join Class on Class.ClassId=Reader.ClassId";
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+
+        //根据读者类型ID查询的读者信息
+        public DataSet selectReader(int ReaderTypeId)
+        {
+
+            string sql = @"select ReaderId,ReaderName,TimeIn,TimeOut,ReaderTypeName,DepartmentName,ClassName,IdentityCard,Gender,Special,Phone,Email,Address,ReaderRemark from Reader 
+                            inner join ReaderType on ReaderType.ReaderTypeId=Reader.ReaderTypeId
+                            inner join Department on Department.DepartmentId=Reader.DepartmentId
+                            inner join Class on Class.ClassId=Reader.ClassId
+                            where ReaderType.ReaderTypeId=@ReaderTypeId ";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderTypeId",ReaderTypeId)
+                              };
+            return DBhelp.Create().ExecuteAdater(sql, sp);
+        }
+
+        //根据ID查询的读者信息
+        public List<Reader> selectReader1(string ReaderId)
+        {
+
+            string sql = @"select ReaderId,ReaderName,TimeIn,TimeOut,ReaderTypeId,DepartmentId,ClassId,IdentityCard,
+                            Gender,Special,Phone,Email,Address,ReaderRemark from Reader";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderId",ReaderId)
+                              };
+            List<Reader> list = new List<Reader>();
+            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql, sp);
+            while (reader.Read())
+            {
+                Reader r = new Reader();
+                r.ReaderId = reader.GetString(0);
+                r.ReaderName = reader.GetString(1);
+                r.TimeIn = reader.GetDateTime(2);
+                r.TimeOut = reader.GetDateTime(3);
+                r.ReaderTypeId = reader.GetInt32(4);
+                r.DepartmentId = reader.GetInt32(5);
+                r.ClassId = reader.GetInt32(6);
+                r.IdentityCard = reader.GetString(7);
+                r.Gender = reader.GetString(8);
+                r.Special = reader.GetString(9);
+                r.Phone = reader.GetString(10);
+                r.Email = reader.GetString(11);
+                r.Address = reader.GetString(12);
+                r.ReaderRemark = reader.GetString(13);
+                list.Add(r);
+            }
+            reader.Close();
+            return list;
+
+        }
+
+        //根据查询内容和条件查询的读者信息
+        public DataSet selectReader(string A, string B)
+        {
+
+            string sql = string.Format(@"select ReaderId,ReaderName,TimeIn,TimeOut,ReaderTypeName,DepartmentName,ClassName,IdentityCard,Gender,Special,Phone,Email,Address,ReaderRemark from Reader 
+                            inner join ReaderType on ReaderType.ReaderTypeId=Reader.ReaderTypeId
+                            inner join Department on Department.DepartmentId=Reader.DepartmentId
+                            inner join Class on Class.ClassId=Reader.ClassId
+                            where {0} like '%{1}%'", A, B);
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+
+
+        //根据查询条件查询的读者信息
+        public DataSet selectReader(List<string> list, string B)
+        {
+            string sql = "";
+            for (int i = 0; i < list.Count; i++)
+            {
+                if (i != list.Count - 1)
+                {
+                    sql += string.Format(@"select ReaderId,ReaderName,TimeIn,TimeOut,ReaderTypeName,DepartmentName,ClassName,IdentityCard,Gender,Special,Phone,Email,Address,ReaderRemark from Reader 
+                            inner join ReaderType on ReaderType.ReaderTypeId=Reader.ReaderTypeId
+                            inner join Department on Department.DepartmentId=Reader.DepartmentId
+                            inner join Class on Class.ClassId=Reader.ClassId
+                            where {0} like '%{1}%' union  ", list[i], B);
+                }
+                else
+                {
+                    sql += string.Format(@"select ReaderId,ReaderName,TimeIn,TimeOut,ReaderTypeName,DepartmentName,ClassName,IdentityCard,Gender,Special,Phone,Email,Address,ReaderRemark from Reader 
+                            inner join ReaderType on ReaderType.ReaderTypeId=Reader.ReaderTypeId
+                            inner join Department on Department.DepartmentId=Reader.DepartmentId
+                            inner join Class on Class.ClassId=Reader.ClassId
+                            where {0} like '%{1}%' ", list[i], B);
+                }
+
+            }
+
+            return DBhelp.Create().ExecuteAdater(sql);
+        }
+
+        //删除读者信息
+        public int deleteReader(string ReaderId)
+        {
+            string sql = @"
+                            delete from BorrowReturn where ReaderId=@ReaderId
+                            delete from Reader where ReaderId=@ReaderId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderId",ReaderId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+
+        //修改读者信息
+        public int updateReader(Reader reader)
+        {
+            string sql = @"update Reader set ReaderName=@ReaderName,TimeIn=@TimeIn,TimeOut=@TimeOut,ReaderTypeId=@ReaderTypeId,
+                            DepartmentId=@DepartmentId,ClassId=@ClassId,IdentityCard=@IdentityCard,Gender=@Gender,Special=@Special,
+                            Phone=@Phone,Email=@Email,Address=@Address,ReaderRemark=@ReaderRemark where ReaderId=@ReaderId";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderName",reader.ReaderName),
+                                   new SqlParameter("@TimeIn",reader.TimeIn),
+                                   new SqlParameter("@TimeOut",reader.TimeOut),
+                                   new SqlParameter("@ReaderTypeId",reader.ReaderTypeId),
+                                   new SqlParameter("@DepartmentId",reader.DepartmentId),
+                                   new SqlParameter("@ClassId",reader.ClassId),
+                                   new SqlParameter("@IdentityCard",reader.IdentityCard),
+                                   new SqlParameter("@Gender",reader.Gender),
+                                   new SqlParameter("@Special",reader.Special),
+                                   new SqlParameter("@Phone",reader.Phone),
+                                   new SqlParameter("@Email",reader.Email),
+                                   new SqlParameter("@Address",reader.Address),
+                                   new SqlParameter("@ReaderRemark",reader.ReaderRemark),
+                                   new SqlParameter("@ReaderId",reader.ReaderId)
+                              };
+            return DBhelp.Create().ExecuteNonQuery(sql, sp: sp);
+        }
+
+
+        //添加读者信息
+        public int addReader(Reader r)
+        {
+            string sql = "proc_AddReader";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderId",r.ReaderId),
+                                   new SqlParameter("@ReaderName",r.ReaderName),
+                                   new SqlParameter("@TimeIn",r.TimeIn),
+                                   new SqlParameter("@TimeOut",r.TimeOut),
+                                   new SqlParameter("@ReaderTypeId",r.ReaderTypeId),
+                                   new SqlParameter("@DepartmentId",r.DepartmentId),
+                                   new SqlParameter("@ClassId",r.ClassId),
+                                   new SqlParameter("@IdentityCard",r.IdentityCard),
+                                   new SqlParameter("@Gender",r.Gender),
+                                   new SqlParameter("@Special",r.Special),
+                                   new SqlParameter("@Phone",r.Phone),
+                                   new SqlParameter("@Email",r.Email),
+                                   new SqlParameter("@Address",r.Address),
+                                   new SqlParameter("@ReaderRemark",r.ReaderRemark),
+                                   new SqlParameter("@ReturnValue",DbType.Int32)
+                              };
+            sp[sp.Length - 1].Direction = ParameterDirection.ReturnValue;
+            DBhelp.Create().ExecuteNonQuery(sql, CommandType.StoredProcedure, sp);
+            return (int)sp[sp.Length - 1].Value;
+        }
+
+        //返回读者编号,读者姓名
+        public List<Reader> selectReaderId(string ReaderId)
+        {
+            string sql = "select ReaderId,ReaderName from Reader where ReaderId like '%'+@ReaderId+'%' ";
+            SqlParameter[] sp ={
+                                   new SqlParameter("@ReaderId",ReaderId)
+                              };
+            SqlDataReader reader = DBhelp.Create().ExecuteReader(sql, sp: sp);
+            List<Reader> list = new List<Reader>();
+            while (reader.Read())
+            {
+                Reader r = new Reader();
+                r.ReaderId = reader["ReaderId"].ToString();
+                r.ReaderName = reader["ReaderName"].ToString();
+                list.Add(r);
+            }
+            reader.Close();
+            return list;
+        }
+    }
+}

+ 15 - 0
LibraryManager/Model/Admin.cs

@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Model
+{
+    public class Admin
+    {
+        public string LoginId { get; set; }
+        public string LoginPwd { get; set; }
+        public string LoginType { get; set; }
+        public string LoginRemark { get; set; }
+    }
+}

+ 33 - 0
LibraryManager/Model/BookInfo.cs

@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Model
+{
+    public class BookInfo
+    {
+        public string BookId { get; set; }
+        public string BookName { get; set; }
+        public DateTime TimeIn { get; set; }
+        private int bookTypeId;
+        public int BookTypeId
+        {
+            get { return bookTypeId; }
+            set { bookTypeId = value; }
+        }
+        public string Author { get; set; }
+        public string PinYinCode { get; set; }
+        public string Translator { get; set; }
+        public string Language { get; set; }
+        public string BookNumber { get; set; }
+        public string Price { get; set; }
+        public string Layout { get; set; }
+        public string Address { get; set; }
+        public string ISBS { get; set; }
+        public string Versions { get; set; }
+        public string BookRemark { get; set; }
+
+        public BookType BookType { get; set; }
+    }
+}

+ 18 - 0
LibraryManager/Model/BookType.cs

@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Model
+{
+    public class BookType
+    {
+        public int BookTypeId { get; set; }
+        public string BookTypeName { get; set; }
+
+        public override string ToString()
+        {
+            return this.BookTypeName;
+        }
+    }
+}

+ 24 - 0
LibraryManager/Model/BorrowReturn.cs

@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Model
+{
+    public class BorrowReturn
+    {
+        public int BorrowId { get; set; }
+        public string BookId { get; set; }
+        public string  ReaderId { get; set; }
+        public DateTime BorrowTime { get; set; }
+        public DateTime ReturnTime { get; set; }
+        public DateTime FactReturnTime { get; set; }
+        public double Fine { get; set; }
+        public int RenewCount { get; set; }
+        public string BorrowRemark { get; set; }
+
+        //方便
+        public DateTime  TimeIn { get; set; } //开始日期
+        public DateTime  TimeOut { get; set; } //结束日期
+    }
+}

+ 18 - 0
LibraryManager/Model/Class.cs

@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Model
+{
+    public class Class
+    {
+        public int ClassId { get; set; }
+        public string ClassName { get; set; }
+
+        public override string ToString()
+        {
+            return this.ClassName; 
+        }
+    }
+}

+ 18 - 0
LibraryManager/Model/Department.cs

@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Model
+{
+    public class Department
+    {
+        public int DepartmentId { get; set; }
+        public string DepartmentName { get; set; }
+
+        public override string ToString()
+        {
+            return this.DepartmentName;
+        }
+    }
+}

+ 62 - 0
LibraryManager/Model/Model.csproj

@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{534C572A-1C8D-46A3-A77D-322BDE5B1543}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Model</RootNamespace>
+    <AssemblyName>Model</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Admin.cs" />
+    <Compile Include="BookInfo.cs" />
+    <Compile Include="BookType.cs" />
+    <Compile Include="BorrowReturn.cs" />
+    <Compile Include="Class.cs" />
+    <Compile Include="Department.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Reader.cs" />
+    <Compile Include="ReaderType.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 36 - 0
LibraryManager/Model/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("Model")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Model")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。  如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("9e29104f-b24e-4136-bc0d-8206d819e4c4")]
+
+// 程序集的版本信息由下面四个值组成: 
+//
+//      主版本
+//      次版本 
+//      生成号
+//      修订号
+//
+// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”: 
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 27 - 0
LibraryManager/Model/Reader.cs

@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Model
+{
+    public class Reader
+    {
+        public string ReaderId { get; set; }
+        public string ReaderName { get; set; }
+        public DateTime TimeIn { get; set; }
+        public DateTime TimeOut { get; set; }
+        public int ReaderTypeId { get; set; }
+        public int DepartmentId { get; set; }
+        public int ClassId { get; set; }
+        public string IdentityCard { get; set; }
+        public string Gender { get; set; }
+        public string Special { get; set; }
+        public string Phone { get; set; }
+        public string Email { get; set; }
+        public string Address { get; set; }
+        public string ReaderRemark { get; set; }
+
+
+    }
+}

+ 18 - 0
LibraryManager/Model/ReaderType.cs

@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Model
+{
+    public class ReaderType
+    {
+        public int ReaderTypeId { get; set; }
+        public string ReaderTypeName { get; set; }
+
+        public override string ToString()
+        {
+            return this.ReaderTypeName;
+        }
+    }
+}

+ 9 - 0
LibraryManager/Web/App.config

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+  <connectionStrings>
+    <add name="a" connectionString="Data Source=.;Initial Catalog=Library;User Id=sa;Password=123456"/>
+  </connectionStrings>
+</configuration>

+ 375 - 0
LibraryManager/Web/FrmMain.Designer.cs

@@ -0,0 +1,375 @@
+namespace Web
+{
+    partial class FrmMain
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmMain));
+            this.tabControl = new System.Windows.Forms.TabControl();
+            this.tabPage1 = new System.Windows.Forms.TabPage();
+            this.tabPage2 = new System.Windows.Forms.TabPage();
+            this.tabPage3 = new System.Windows.Forms.TabPage();
+            this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+            this.toolStripButtonBookManager = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButtonReaderManager = new System.Windows.Forms.ToolStripButton();
+            this.toolStripButtonBorrowReturn = new System.Windows.Forms.ToolStripButton();
+            this.toolStripBorrow = new System.Windows.Forms.ToolStripButton();
+            this.statusStrip1 = new System.Windows.Forms.StatusStrip();
+            this.toolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel();
+            this.menuStrip1 = new System.Windows.Forms.MenuStrip();
+            this.图书管理 = new System.Windows.Forms.ToolStripMenuItem();
+            this.menuStripAddBookInfo = new System.Windows.Forms.ToolStripMenuItem();
+            this.toolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.读者管理ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.menuStripAddReaderInfo = new System.Windows.Forms.ToolStripMenuItem();
+            this.读者类型管理ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.图书借还管理ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.menuStripBorrow = new System.Windows.Forms.ToolStripMenuItem();
+            this.图书借还记录ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.小工具ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.计算器ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.画图工具ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.系统设计ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.操作员管理ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.退出ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.帮助ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+            this.tabControl.SuspendLayout();
+            this.toolStrip1.SuspendLayout();
+            this.statusStrip1.SuspendLayout();
+            this.menuStrip1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // tabControl
+            // 
+            this.tabControl.Controls.Add(this.tabPage1);
+            this.tabControl.Controls.Add(this.tabPage2);
+            this.tabControl.Controls.Add(this.tabPage3);
+            this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tabControl.Location = new System.Drawing.Point(0, 86);
+            this.tabControl.Name = "tabControl";
+            this.tabControl.SelectedIndex = 0;
+            this.tabControl.Size = new System.Drawing.Size(934, 507);
+            this.tabControl.TabIndex = 9;
+            // 
+            // tabPage1
+            // 
+            this.tabPage1.Location = new System.Drawing.Point(4, 22);
+            this.tabPage1.Name = "tabPage1";
+            this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage1.Size = new System.Drawing.Size(926, 481);
+            this.tabPage1.TabIndex = 0;
+            this.tabPage1.Text = "图书管理";
+            this.tabPage1.UseVisualStyleBackColor = true;
+            // 
+            // tabPage2
+            // 
+            this.tabPage2.Location = new System.Drawing.Point(4, 22);
+            this.tabPage2.Name = "tabPage2";
+            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage2.Size = new System.Drawing.Size(926, 478);
+            this.tabPage2.TabIndex = 1;
+            this.tabPage2.Text = "读者管理";
+            this.tabPage2.UseVisualStyleBackColor = true;
+            // 
+            // tabPage3
+            // 
+            this.tabPage3.Location = new System.Drawing.Point(4, 22);
+            this.tabPage3.Name = "tabPage3";
+            this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage3.Size = new System.Drawing.Size(926, 478);
+            this.tabPage3.TabIndex = 2;
+            this.tabPage3.Text = "图书借还记录";
+            this.tabPage3.UseVisualStyleBackColor = true;
+            // 
+            // toolStrip1
+            // 
+            this.toolStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
+            this.toolStrip1.ImageScalingSize = new System.Drawing.Size(40, 40);
+            this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.toolStripButtonBookManager,
+            this.toolStripButtonReaderManager,
+            this.toolStripButtonBorrowReturn,
+            this.toolStripBorrow});
+            this.toolStrip1.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.Flow;
+            this.toolStrip1.Location = new System.Drawing.Point(0, 24);
+            this.toolStrip1.Name = "toolStrip1";
+            this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
+            this.toolStrip1.Size = new System.Drawing.Size(934, 62);
+            this.toolStrip1.TabIndex = 8;
+            this.toolStrip1.Text = "toolStrip1";
+            // 
+            // toolStripButtonBookManager
+            // 
+            this.toolStripButtonBookManager.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonBookManager.Image")));
+            this.toolStripButtonBookManager.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButtonBookManager.Name = "toolStripButtonBookManager";
+            this.toolStripButtonBookManager.Size = new System.Drawing.Size(69, 59);
+            this.toolStripButtonBookManager.Text = " 图书管理 ";
+            this.toolStripButtonBookManager.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+            this.toolStripButtonBookManager.Click += new System.EventHandler(this.toolStripButtonBookManager_Click);
+            // 
+            // toolStripButtonReaderManager
+            // 
+            this.toolStripButtonReaderManager.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonReaderManager.Image")));
+            this.toolStripButtonReaderManager.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButtonReaderManager.Name = "toolStripButtonReaderManager";
+            this.toolStripButtonReaderManager.Size = new System.Drawing.Size(69, 59);
+            this.toolStripButtonReaderManager.Text = " 读者管理 ";
+            this.toolStripButtonReaderManager.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+            this.toolStripButtonReaderManager.Click += new System.EventHandler(this.toolStripButtonReaderManager_Click);
+            // 
+            // toolStripButtonBorrowReturn
+            // 
+            this.toolStripButtonBorrowReturn.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButtonBorrowReturn.Image")));
+            this.toolStripButtonBorrowReturn.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripButtonBorrowReturn.Name = "toolStripButtonBorrowReturn";
+            this.toolStripButtonBorrowReturn.Size = new System.Drawing.Size(69, 59);
+            this.toolStripButtonBorrowReturn.Text = " 借还记录 ";
+            this.toolStripButtonBorrowReturn.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+            this.toolStripButtonBorrowReturn.Click += new System.EventHandler(this.toolStripButtonBorrowReturn_Click);
+            // 
+            // toolStripBorrow
+            // 
+            this.toolStripBorrow.Image = ((System.Drawing.Image)(resources.GetObject("toolStripBorrow.Image")));
+            this.toolStripBorrow.ImageTransparentColor = System.Drawing.Color.Magenta;
+            this.toolStripBorrow.Name = "toolStripBorrow";
+            this.toolStripBorrow.Size = new System.Drawing.Size(69, 59);
+            this.toolStripBorrow.Text = " 图书借阅 ";
+            this.toolStripBorrow.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+            this.toolStripBorrow.Click += new System.EventHandler(this.toolStripBorrow_Click);
+            // 
+            // statusStrip1
+            // 
+            this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.toolStripStatusLabel});
+            this.statusStrip1.Location = new System.Drawing.Point(0, 593);
+            this.statusStrip1.Name = "statusStrip1";
+            this.statusStrip1.Size = new System.Drawing.Size(934, 22);
+            this.statusStrip1.TabIndex = 7;
+            this.statusStrip1.Text = "statusStrip1";
+            // 
+            // toolStripStatusLabel
+            // 
+            this.toolStripStatusLabel.Name = "toolStripStatusLabel";
+            this.toolStripStatusLabel.Size = new System.Drawing.Size(118, 17);
+            this.toolStripStatusLabel.Text = "toolStripStatusLabel1";
+            // 
+            // menuStrip1
+            // 
+            this.menuStrip1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
+            this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.图书管理,
+            this.读者管理ToolStripMenuItem,
+            this.图书借还管理ToolStripMenuItem,
+            this.小工具ToolStripMenuItem,
+            this.系统设计ToolStripMenuItem,
+            this.帮助ToolStripMenuItem});
+            this.menuStrip1.Location = new System.Drawing.Point(0, 0);
+            this.menuStrip1.Name = "menuStrip1";
+            this.menuStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.System;
+            this.menuStrip1.Size = new System.Drawing.Size(934, 24);
+            this.menuStrip1.TabIndex = 6;
+            this.menuStrip1.Text = "menuStrip1";
+            // 
+            // 图书管理
+            // 
+            this.图书管理.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menuStripAddBookInfo,
+            this.toolStripMenuItem});
+            this.图书管理.Name = "图书管理";
+            this.图书管理.Size = new System.Drawing.Size(71, 20);
+            this.图书管理.Text = "图书管理";
+            // 
+            // menuStripAddBookInfo
+            // 
+            this.menuStripAddBookInfo.Name = "menuStripAddBookInfo";
+            this.menuStripAddBookInfo.Size = new System.Drawing.Size(152, 22);
+            this.menuStripAddBookInfo.Text = "新增图书";
+            this.menuStripAddBookInfo.Click += new System.EventHandler(this.menuStripAddBookInfo_Click);
+            // 
+            // toolStripMenuItem
+            // 
+            this.toolStripMenuItem.Name = "toolStripMenuItem";
+            this.toolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+            this.toolStripMenuItem.Text = "图书类型管理";
+            this.toolStripMenuItem.Click += new System.EventHandler(this.图书类别管理ToolStripMenuItem_Click);
+            // 
+            // 读者管理ToolStripMenuItem
+            // 
+            this.读者管理ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menuStripAddReaderInfo,
+            this.读者类型管理ToolStripMenuItem});
+            this.读者管理ToolStripMenuItem.Name = "读者管理ToolStripMenuItem";
+            this.读者管理ToolStripMenuItem.Size = new System.Drawing.Size(71, 20);
+            this.读者管理ToolStripMenuItem.Text = "读者管理";
+            // 
+            // menuStripAddReaderInfo
+            // 
+            this.menuStripAddReaderInfo.Name = "menuStripAddReaderInfo";
+            this.menuStripAddReaderInfo.Size = new System.Drawing.Size(152, 22);
+            this.menuStripAddReaderInfo.Text = "新增读者";
+            this.menuStripAddReaderInfo.Click += new System.EventHandler(this.menuStripAddReaderInfo_Click);
+            // 
+            // 读者类型管理ToolStripMenuItem
+            // 
+            this.读者类型管理ToolStripMenuItem.Name = "读者类型管理ToolStripMenuItem";
+            this.读者类型管理ToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+            this.读者类型管理ToolStripMenuItem.Text = "读者类型管理";
+            this.读者类型管理ToolStripMenuItem.Click += new System.EventHandler(this.读者类型管理ToolStripMenuItem_Click);
+            // 
+            // 图书借还管理ToolStripMenuItem
+            // 
+            this.图书借还管理ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.menuStripBorrow,
+            this.图书借还记录ToolStripMenuItem});
+            this.图书借还管理ToolStripMenuItem.Name = "图书借还管理ToolStripMenuItem";
+            this.图书借还管理ToolStripMenuItem.Size = new System.Drawing.Size(97, 20);
+            this.图书借还管理ToolStripMenuItem.Text = "图书借还管理";
+            // 
+            // menuStripBorrow
+            // 
+            this.menuStripBorrow.Name = "menuStripBorrow";
+            this.menuStripBorrow.Size = new System.Drawing.Size(152, 22);
+            this.menuStripBorrow.Text = "图书借阅";
+            this.menuStripBorrow.Click += new System.EventHandler(this.menuStripBorrow_Click);
+            // 
+            // 图书借还记录ToolStripMenuItem
+            // 
+            this.图书借还记录ToolStripMenuItem.Name = "图书借还记录ToolStripMenuItem";
+            this.图书借还记录ToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
+            this.图书借还记录ToolStripMenuItem.Text = "图书借还记录";
+            this.图书借还记录ToolStripMenuItem.Click += new System.EventHandler(this.图书借还记录ToolStripMenuItem_Click);
+            // 
+            // 小工具ToolStripMenuItem
+            // 
+            this.小工具ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.计算器ToolStripMenuItem,
+            this.画图工具ToolStripMenuItem});
+            this.小工具ToolStripMenuItem.Name = "小工具ToolStripMenuItem";
+            this.小工具ToolStripMenuItem.Size = new System.Drawing.Size(58, 20);
+            this.小工具ToolStripMenuItem.Text = "小工具";
+            // 
+            // 计算器ToolStripMenuItem
+            // 
+            this.计算器ToolStripMenuItem.Name = "计算器ToolStripMenuItem";
+            this.计算器ToolStripMenuItem.Size = new System.Drawing.Size(126, 22);
+            this.计算器ToolStripMenuItem.Text = "计算器";
+            this.计算器ToolStripMenuItem.Click += new System.EventHandler(this.计算器ToolStripMenuItem_Click);
+            // 
+            // 画图工具ToolStripMenuItem
+            // 
+            this.画图工具ToolStripMenuItem.Name = "画图工具ToolStripMenuItem";
+            this.画图工具ToolStripMenuItem.Size = new System.Drawing.Size(126, 22);
+            this.画图工具ToolStripMenuItem.Text = "画图工具";
+            this.画图工具ToolStripMenuItem.Click += new System.EventHandler(this.画图工具ToolStripMenuItem_Click);
+            // 
+            // 系统设计ToolStripMenuItem
+            // 
+            this.系统设计ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+            this.操作员管理ToolStripMenuItem,
+            this.退出ToolStripMenuItem});
+            this.系统设计ToolStripMenuItem.Name = "系统设计ToolStripMenuItem";
+            this.系统设计ToolStripMenuItem.Size = new System.Drawing.Size(80, 20);
+            this.系统设计ToolStripMenuItem.Text = "系统管理&Q";
+            // 
+            // 操作员管理ToolStripMenuItem
+            // 
+            this.操作员管理ToolStripMenuItem.Name = "操作员管理ToolStripMenuItem";
+            this.操作员管理ToolStripMenuItem.Size = new System.Drawing.Size(139, 22);
+            this.操作员管理ToolStripMenuItem.Text = "操作员管理";
+            this.操作员管理ToolStripMenuItem.Click += new System.EventHandler(this.操作员管理ToolStripMenuItem_Click);
+            // 
+            // 退出ToolStripMenuItem
+            // 
+            this.退出ToolStripMenuItem.Name = "退出ToolStripMenuItem";
+            this.退出ToolStripMenuItem.Size = new System.Drawing.Size(139, 22);
+            this.退出ToolStripMenuItem.Text = "退出系统";
+            this.退出ToolStripMenuItem.Click += new System.EventHandler(this.退出ToolStripMenuItem_Click);
+            // 
+            // 帮助ToolStripMenuItem
+            // 
+            this.帮助ToolStripMenuItem.Name = "帮助ToolStripMenuItem";
+            this.帮助ToolStripMenuItem.Size = new System.Drawing.Size(54, 20);
+            this.帮助ToolStripMenuItem.Text = "帮助&H";
+            // 
+            // FrmMain
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(934, 615);
+            this.Controls.Add(this.tabControl);
+            this.Controls.Add(this.toolStrip1);
+            this.Controls.Add(this.statusStrip1);
+            this.Controls.Add(this.menuStrip1);
+            this.Name = "FrmMain";
+            this.Text = "图书管理";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.FrmMain_FormClosing);
+            this.Load += new System.EventHandler(this.FrmMain_Load);
+            this.tabControl.ResumeLayout(false);
+            this.toolStrip1.ResumeLayout(false);
+            this.toolStrip1.PerformLayout();
+            this.statusStrip1.ResumeLayout(false);
+            this.statusStrip1.PerformLayout();
+            this.menuStrip1.ResumeLayout(false);
+            this.menuStrip1.PerformLayout();
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TabControl tabControl;
+        private System.Windows.Forms.TabPage tabPage1;
+        private System.Windows.Forms.TabPage tabPage2;
+        private System.Windows.Forms.TabPage tabPage3;
+        private System.Windows.Forms.ToolStrip toolStrip1;
+        private System.Windows.Forms.ToolStripButton toolStripButtonBookManager;
+        private System.Windows.Forms.ToolStripButton toolStripButtonReaderManager;
+        private System.Windows.Forms.ToolStripButton toolStripButtonBorrowReturn;
+        private System.Windows.Forms.ToolStripButton toolStripBorrow;
+        private System.Windows.Forms.StatusStrip statusStrip1;
+        private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel;
+        private System.Windows.Forms.MenuStrip menuStrip1;
+        private System.Windows.Forms.ToolStripMenuItem 图书管理;
+        private System.Windows.Forms.ToolStripMenuItem menuStripAddBookInfo;
+        private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem 读者管理ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem menuStripAddReaderInfo;
+        private System.Windows.Forms.ToolStripMenuItem 读者类型管理ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem 图书借还管理ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem menuStripBorrow;
+        private System.Windows.Forms.ToolStripMenuItem 图书借还记录ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem 小工具ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem 计算器ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem 画图工具ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem 系统设计ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem 操作员管理ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem 退出ToolStripMenuItem;
+        private System.Windows.Forms.ToolStripMenuItem 帮助ToolStripMenuItem;
+    }
+}

+ 162 - 0
LibraryManager/Web/FrmMain.cs

@@ -0,0 +1,162 @@
+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 Model;
+using System.Threading;
+
+namespace Web
+{
+    public partial class FrmMain : Form
+    {
+        public FrmMain()
+        {
+            InitializeComponent();
+        }
+        public Admin admin = null;
+        BookInfoManager_UI book;
+        ReaderManager_UI reader;
+        Thread t;
+        private void FrmMain_Load(object sender, EventArgs e)
+        {
+            this.toolStripStatusLabel.Text = "状态:" + admin.LoginType + "\"" + admin.LoginId + "\"已登录.";
+            //图书管理窗体的绑定
+            book = new BookInfoManager_UI();
+            Control.CheckForIllegalCrossThreadCalls = false;
+            //t = new Thread(delegate() { banding(book, tabPage1); });
+            //t.IsBackground = true;
+            //t.Start();
+            banding(book, tabPage1);
+
+            //读者管理窗体的绑定
+            reader = new ReaderManager_UI();
+            reader.book = book;
+            banding(reader, tabPage2);
+
+            //借还历史记录窗体的绑定
+            banding(new BorrowHostory_UI(), tabPage3);
+        }
+
+        //TabControl的TabPage绑定窗体的公共方法
+        public void banding(Form form, TabPage page)
+        {
+            page.Controls.Clear();
+            form.FormBorderStyle = FormBorderStyle.None;
+            form.StartPosition = FormStartPosition.Manual;
+            form.Size = page.Size;
+            form.TopLevel = false;
+            page.Controls.Add(form);
+            form.Show();
+
+        }
+
+        private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            Application.Exit();  
+        }
+
+        //menuStrip新增图书
+        private void menuStripAddBookInfo_Click(object sender, EventArgs e)
+        {
+            book.btnAddBookInfo_Click(null, null);
+        }
+
+        private void toolStripBorrow_Click(object sender, EventArgs e)
+        {
+            BorrowManager_UI b = new BorrowManager_UI();
+            b.ShowDialog();
+        }
+        private void menuStripAddReaderInfo_Click(object sender, EventArgs e)
+        {
+            reader.btnAddReaderInfo_Click(null, null);
+        }
+
+        private void 图书类别管理ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "图书类型";
+            a.Manager = this.book;
+            a.ShowDialog();
+        }
+        private void 读者类型管理ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "读者类型";
+            a.readerManager = this.reader;
+            a.ShowDialog();
+        }
+
+        //图书管理
+        private void toolStripButtonBookManager_Click(object sender, EventArgs e)
+        {
+            this.tabControl.SelectedIndex = 0;
+        }
+        //读者管理
+        private void toolStripButtonReaderManager_Click(object sender, EventArgs e)
+        {
+            this.tabControl.SelectedIndex = 1;
+        }
+        //借还管理
+        private void toolStripButtonBorrowReturn_Click(object sender, EventArgs e)
+        {
+            this.tabControl.SelectedIndex = 2;
+        }
+
+        private void 画图工具ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            System.Diagnostics.Process.Start("mspaint.exe");
+        }
+
+        private void 计算器ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            System.Diagnostics.Process.Start("calc.exe");
+        }
+
+
+
+
+        private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            DialogResult result = MessageBox.Show("确认退出", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+            if (result == DialogResult.OK)
+            {
+                Application.Exit();
+            }
+        }
+
+        private void 操作员管理ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            if (admin.LoginType == "超级管理员")
+            {
+                //AdminManager_UI a = new AdminManager_UI();
+                //a.ShowDialog();
+            }
+            else
+            {
+                MessageBox.Show("只有超级管理员能使用此功能");
+            }
+        }
+
+        
+
+        private void menuStripBorrow_Click(object sender, EventArgs e)
+        {
+            BorrowManager_UI b = new BorrowManager_UI();
+            b.ShowDialog();
+        }
+
+        private void 图书借还记录ToolStripMenuItem_Click(object sender, EventArgs e)
+        {
+            this.tabControl.SelectedIndex = 2;
+        }
+
+
+
+
+    }
+}

+ 2660 - 0
LibraryManager/Web/FrmMain.resx

@@ -0,0 +1,2660 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>349, 27</value>
+  </metadata>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="toolStripButtonBookManager.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+</value>
+  </data>
+  <data name="toolStripButtonReaderManager.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+</value>
+  </data>
+  <data name="toolStripButtonBorrowReturn.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+</value>
+  </data>
+  <data name="toolStripBorrow.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        RERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERE
+        NLs22+z/Av4mAwQZasNFAAAAAElFTkSuQmCC
+</value>
+  </data>
+  <metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>459, 27</value>
+  </metadata>
+  <metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>580, 27</value>
+  </metadata>
+</root>

BIN
LibraryManager/Web/Image/01.png


+ 165 - 0
LibraryManager/Web/Login.Designer.cs

@@ -0,0 +1,165 @@
+namespace Web
+{
+    partial class Login
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.btnClose = new System.Windows.Forms.Button();
+            this.btnLongin = new System.Windows.Forms.Button();
+            this.txtPwd = new System.Windows.Forms.TextBox();
+            this.txtLoginId = new System.Windows.Forms.TextBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.cboType = new System.Windows.Forms.ComboBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.SuspendLayout();
+            // 
+            // btnClose
+            // 
+            this.btnClose.Location = new System.Drawing.Point(319, 334);
+            this.btnClose.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
+            this.btnClose.Name = "btnClose";
+            this.btnClose.Size = new System.Drawing.Size(102, 42);
+            this.btnClose.TabIndex = 10;
+            this.btnClose.Text = "取消";
+            this.btnClose.UseVisualStyleBackColor = true;
+            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+            // 
+            // btnLongin
+            // 
+            this.btnLongin.Location = new System.Drawing.Point(68, 334);
+            this.btnLongin.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
+            this.btnLongin.Name = "btnLongin";
+            this.btnLongin.Size = new System.Drawing.Size(110, 42);
+            this.btnLongin.TabIndex = 11;
+            this.btnLongin.Text = "登录";
+            this.btnLongin.UseVisualStyleBackColor = true;
+            this.btnLongin.Click += new System.EventHandler(this.btnLongin_Click);
+            // 
+            // txtPwd
+            // 
+            this.txtPwd.Location = new System.Drawing.Point(174, 134);
+            this.txtPwd.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
+            this.txtPwd.Name = "txtPwd";
+            this.txtPwd.PasswordChar = '*';
+            this.txtPwd.Size = new System.Drawing.Size(247, 29);
+            this.txtPwd.TabIndex = 8;
+            this.txtPwd.Text = "admin";
+            // 
+            // txtLoginId
+            // 
+            this.txtLoginId.Location = new System.Drawing.Point(174, 50);
+            this.txtLoginId.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
+            this.txtLoginId.Name = "txtLoginId";
+            this.txtLoginId.Size = new System.Drawing.Size(247, 29);
+            this.txtLoginId.TabIndex = 9;
+            this.txtLoginId.Text = "admin";
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.BackColor = System.Drawing.Color.Transparent;
+            this.label3.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label3.Location = new System.Drawing.Point(64, 213);
+            this.label3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(74, 22);
+            this.label3.TabIndex = 4;
+            this.label3.Text = "登录类型";
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.BackColor = System.Drawing.Color.Transparent;
+            this.label2.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label2.Location = new System.Drawing.Point(64, 140);
+            this.label2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(42, 22);
+            this.label2.TabIndex = 5;
+            this.label2.Text = "密码";
+            // 
+            // cboType
+            // 
+            this.cboType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboType.FormattingEnabled = true;
+            this.cboType.Location = new System.Drawing.Point(174, 207);
+            this.cboType.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
+            this.cboType.Name = "cboType";
+            this.cboType.Size = new System.Drawing.Size(247, 30);
+            this.cboType.TabIndex = 7;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.BackColor = System.Drawing.Color.Transparent;
+            this.label1.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label1.Location = new System.Drawing.Point(64, 55);
+            this.label1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 0);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(58, 22);
+            this.label1.TabIndex = 6;
+            this.label1.Text = "用户名";
+            // 
+            // Login
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 22F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.BackgroundImage = global::Web.Properties.Resources._01;
+            this.ClientSize = new System.Drawing.Size(502, 436);
+            this.Controls.Add(this.btnClose);
+            this.Controls.Add(this.btnLongin);
+            this.Controls.Add(this.txtPwd);
+            this.Controls.Add(this.txtLoginId);
+            this.Controls.Add(this.label3);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.cboType);
+            this.Controls.Add(this.label1);
+            this.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.Margin = new System.Windows.Forms.Padding(5, 6, 5, 6);
+            this.MaximizeBox = false;
+            this.Name = "Login";
+            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+            this.Text = "登录";
+            this.Load += new System.EventHandler(this.Login_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btnClose;
+        private System.Windows.Forms.Button btnLongin;
+        private System.Windows.Forms.TextBox txtPwd;
+        private System.Windows.Forms.TextBox txtLoginId;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.ComboBox cboType;
+        private System.Windows.Forms.Label label1;
+    }
+}

+ 58 - 0
LibraryManager/Web/Login.cs

@@ -0,0 +1,58 @@
+using BLL;
+using Model;
+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 Web
+{
+    public partial class Login : Form
+    {
+        public Login()
+        {
+            InitializeComponent();
+        }
+        Admin_BLL aa = new Admin_BLL();
+        //窗体加载
+        private void Login_Load(object sender, EventArgs e)
+        {
+            cboType.Items.Add("超级管理员");
+            cboType.Items.Add("普通管理员");
+            this.cboType.SelectedIndex = 0;
+        }
+        //取消
+        private void btnClose_Click(object sender, EventArgs e)
+        {
+            DialogResult result = MessageBox.Show("确定取消吗!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+            if (result == DialogResult.OK)
+                Application.Exit();      
+        }
+        //登录
+        private void btnLongin_Click(object sender, EventArgs e)
+        {
+            Admin a = new Admin();
+            a.LoginId = txtLoginId.Text.Trim();
+            a.LoginPwd = txtPwd.Text.Trim();
+            a.LoginType = cboType.Text.Trim();
+            if (aa.Scalar(a)>0)
+            {
+                FrmMain f = new FrmMain();
+                f.admin = a;
+                f.Show();
+                this.Hide();
+                this.Visible = false;
+            }
+            else
+            {
+                MessageBox.Show("登录失败");
+            }
+        }
+    }
+}

+ 120 - 0
LibraryManager/Web/Login.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 22 - 0
LibraryManager/Web/Program.cs

@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Web
+{
+    static class Program
+    {
+        /// <summary>
+        /// 应用程序的主入口点。
+        /// </summary>
+        [STAThread]
+        static void Main()
+        {
+            Application.EnableVisualStyles();
+            Application.SetCompatibleTextRenderingDefault(false);
+            Application.Run(new Login());
+        }
+    }
+}

+ 36 - 0
LibraryManager/Web/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// 有关程序集的常规信息通过以下
+// 特性集控制。更改这些特性值可修改
+// 与程序集关联的信息。
+[assembly: AssemblyTitle("Web")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("Web")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// 将 ComVisible 设置为 false 使此程序集中的类型
+// 对 COM 组件不可见。  如果需要从 COM 访问此程序集中的类型,
+// 则将该类型上的 ComVisible 特性设置为 true。
+[assembly: ComVisible(false)]
+
+// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
+[assembly: Guid("2da16ab6-fd95-4558-9513-1e542daeb1ba")]
+
+// 程序集的版本信息由下面四个值组成: 
+//
+//      主版本
+//      次版本 
+//      生成号
+//      修订号
+//
+// 可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
+// 方法是按如下所示使用“*”: 
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 73 - 0
LibraryManager/Web/Properties/Resources.Designer.cs

@@ -0,0 +1,73 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     此代码由工具生成。
+//     运行时版本:4.0.30319.18444
+//
+//     对此文件的更改可能会导致不正确的行为,并且如果
+//     重新生成代码,这些更改将会丢失。
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Web.Properties {
+    using System;
+    
+    
+    /// <summary>
+    ///   一个强类型的资源类,用于查找本地化的字符串等。
+    /// </summary>
+    // 此类是由 StronglyTypedResourceBuilder
+    // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
+    // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
+    // (以 /str 作为命令选项),或重新生成 VS 项目。
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    internal class Resources {
+        
+        private static global::System.Resources.ResourceManager resourceMan;
+        
+        private static global::System.Globalization.CultureInfo resourceCulture;
+        
+        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+        internal Resources() {
+        }
+        
+        /// <summary>
+        ///   返回此类使用的缓存的 ResourceManager 实例。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Resources.ResourceManager ResourceManager {
+            get {
+                if (object.ReferenceEquals(resourceMan, null)) {
+                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Web.Properties.Resources", typeof(Resources).Assembly);
+                    resourceMan = temp;
+                }
+                return resourceMan;
+            }
+        }
+        
+        /// <summary>
+        ///   使用此强类型资源类,为所有资源查找
+        ///   重写当前线程的 CurrentUICulture 属性。
+        /// </summary>
+        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+        internal static global::System.Globalization.CultureInfo Culture {
+            get {
+                return resourceCulture;
+            }
+            set {
+                resourceCulture = value;
+            }
+        }
+        
+        /// <summary>
+        ///   查找 System.Drawing.Bitmap 类型的本地化资源。
+        /// </summary>
+        internal static System.Drawing.Bitmap _01 {
+            get {
+                object obj = ResourceManager.GetObject("01", resourceCulture);
+                return ((System.Drawing.Bitmap)(obj));
+            }
+        }
+    }
+}

+ 124 - 0
LibraryManager/Web/Properties/Resources.resx

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+  <data name="01" type="System.Resources.ResXFileRef, System.Windows.Forms">
+    <value>..\Image\01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
+  </data>
+</root>

+ 30 - 0
LibraryManager/Web/Properties/Settings.Designer.cs

@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.18444
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace Web.Properties
+{
+
+
+    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+    {
+
+        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+        public static Settings Default
+        {
+            get
+            {
+                return defaultInstance;
+            }
+        }
+    }
+}

+ 7 - 0
LibraryManager/Web/Properties/Settings.settings

@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8'?>
+<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
+  <Profiles>
+    <Profile Name="(Default)" />
+  </Profiles>
+  <Settings />
+</SettingsFile>

+ 376 - 0
LibraryManager/Web/Views/Add.Designer.cs

@@ -0,0 +1,376 @@
+namespace Web
+{
+    partial class Add
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
+            this.dataGridView4 = new System.Windows.Forms.DataGridView();
+            this.button4 = new System.Windows.Forms.Button();
+            this.tabPage4 = new System.Windows.Forms.TabPage();
+            this.textBox4 = new System.Windows.Forms.TextBox();
+            this.dataGridView3 = new System.Windows.Forms.DataGridView();
+            this.textBox3 = new System.Windows.Forms.TextBox();
+            this.button3 = new System.Windows.Forms.Button();
+            this.dataGridView2 = new System.Windows.Forms.DataGridView();
+            this.textBox2 = new System.Windows.Forms.TextBox();
+            this.tabPage3 = new System.Windows.Forms.TabPage();
+            this.button2 = new System.Windows.Forms.Button();
+            this.tabPage2 = new System.Windows.Forms.TabPage();
+            this.textBox1 = new System.Windows.Forms.TextBox();
+            this.button1 = new System.Windows.Forms.Button();
+            this.tabPage1 = new System.Windows.Forms.TabPage();
+            this.dataGridView1 = new System.Windows.Forms.DataGridView();
+            this.tabControl1 = new System.Windows.Forms.TabControl();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView4)).BeginInit();
+            this.tabPage4.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).BeginInit();
+            this.tabPage3.SuspendLayout();
+            this.tabPage2.SuspendLayout();
+            this.tabPage1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
+            this.tabControl1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // dataGridView4
+            // 
+            this.dataGridView4.AllowUserToAddRows = false;
+            this.dataGridView4.AllowUserToDeleteRows = false;
+            this.dataGridView4.AllowUserToResizeColumns = false;
+            this.dataGridView4.AllowUserToResizeRows = false;
+            this.dataGridView4.BackgroundColor = System.Drawing.SystemColors.ActiveCaptionText;
+            this.dataGridView4.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            this.dataGridView4.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Window;
+            dataGridViewCellStyle9.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dataGridView4.DefaultCellStyle = dataGridViewCellStyle9;
+            this.dataGridView4.Location = new System.Drawing.Point(7, 52);
+            this.dataGridView4.Name = "dataGridView4";
+            dataGridViewCellStyle10.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle10.BackColor = System.Drawing.SystemColors.Control;
+            dataGridViewCellStyle10.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle10.ForeColor = System.Drawing.SystemColors.WindowText;
+            dataGridViewCellStyle10.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle10.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            this.dataGridView4.RowHeadersDefaultCellStyle = dataGridViewCellStyle10;
+            this.dataGridView4.RowTemplate.Height = 23;
+            this.dataGridView4.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
+            this.dataGridView4.Size = new System.Drawing.Size(560, 264);
+            this.dataGridView4.TabIndex = 5;
+            this.dataGridView4.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView4_CellContentClick);
+            // 
+            // button4
+            // 
+            this.button4.Location = new System.Drawing.Point(225, 12);
+            this.button4.Name = "button4";
+            this.button4.Size = new System.Drawing.Size(75, 23);
+            this.button4.TabIndex = 3;
+            this.button4.Text = "新增";
+            this.button4.UseVisualStyleBackColor = true;
+            this.button4.Click += new System.EventHandler(this.button4_Click);
+            // 
+            // tabPage4
+            // 
+            this.tabPage4.Controls.Add(this.dataGridView4);
+            this.tabPage4.Controls.Add(this.textBox4);
+            this.tabPage4.Controls.Add(this.button4);
+            this.tabPage4.Location = new System.Drawing.Point(4, 22);
+            this.tabPage4.Name = "tabPage4";
+            this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage4.Size = new System.Drawing.Size(576, 339);
+            this.tabPage4.TabIndex = 3;
+            this.tabPage4.Text = "班级";
+            this.tabPage4.UseVisualStyleBackColor = true;
+            // 
+            // textBox4
+            // 
+            this.textBox4.Location = new System.Drawing.Point(33, 14);
+            this.textBox4.Name = "textBox4";
+            this.textBox4.Size = new System.Drawing.Size(172, 21);
+            this.textBox4.TabIndex = 4;
+            // 
+            // dataGridView3
+            // 
+            this.dataGridView3.AllowUserToAddRows = false;
+            this.dataGridView3.AllowUserToDeleteRows = false;
+            this.dataGridView3.AllowUserToResizeColumns = false;
+            this.dataGridView3.AllowUserToResizeRows = false;
+            this.dataGridView3.BackgroundColor = System.Drawing.SystemColors.ActiveCaptionText;
+            this.dataGridView3.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            this.dataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Window;
+            dataGridViewCellStyle11.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dataGridView3.DefaultCellStyle = dataGridViewCellStyle11;
+            this.dataGridView3.Location = new System.Drawing.Point(7, 52);
+            this.dataGridView3.Name = "dataGridView3";
+            dataGridViewCellStyle12.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle12.BackColor = System.Drawing.SystemColors.Control;
+            dataGridViewCellStyle12.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle12.ForeColor = System.Drawing.SystemColors.WindowText;
+            dataGridViewCellStyle12.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle12.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            this.dataGridView3.RowHeadersDefaultCellStyle = dataGridViewCellStyle12;
+            this.dataGridView3.RowTemplate.Height = 23;
+            this.dataGridView3.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
+            this.dataGridView3.Size = new System.Drawing.Size(560, 264);
+            this.dataGridView3.TabIndex = 5;
+            this.dataGridView3.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView3_CellContentClick);
+            // 
+            // textBox3
+            // 
+            this.textBox3.Location = new System.Drawing.Point(33, 14);
+            this.textBox3.Name = "textBox3";
+            this.textBox3.Size = new System.Drawing.Size(172, 21);
+            this.textBox3.TabIndex = 4;
+            // 
+            // button3
+            // 
+            this.button3.Location = new System.Drawing.Point(225, 12);
+            this.button3.Name = "button3";
+            this.button3.Size = new System.Drawing.Size(75, 23);
+            this.button3.TabIndex = 3;
+            this.button3.Text = "新增";
+            this.button3.UseVisualStyleBackColor = true;
+            this.button3.Click += new System.EventHandler(this.button3_Click);
+            // 
+            // dataGridView2
+            // 
+            this.dataGridView2.AllowUserToAddRows = false;
+            this.dataGridView2.AllowUserToDeleteRows = false;
+            this.dataGridView2.AllowUserToResizeColumns = false;
+            this.dataGridView2.AllowUserToResizeRows = false;
+            this.dataGridView2.BackgroundColor = System.Drawing.SystemColors.ActiveCaptionText;
+            this.dataGridView2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            this.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            dataGridViewCellStyle13.BackColor = System.Drawing.SystemColors.Window;
+            dataGridViewCellStyle13.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle13.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle13.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle13.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dataGridView2.DefaultCellStyle = dataGridViewCellStyle13;
+            this.dataGridView2.Location = new System.Drawing.Point(7, 52);
+            this.dataGridView2.Name = "dataGridView2";
+            dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle14.BackColor = System.Drawing.SystemColors.Control;
+            dataGridViewCellStyle14.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle14.ForeColor = System.Drawing.SystemColors.WindowText;
+            dataGridViewCellStyle14.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle14.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            this.dataGridView2.RowHeadersDefaultCellStyle = dataGridViewCellStyle14;
+            this.dataGridView2.RowTemplate.Height = 23;
+            this.dataGridView2.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
+            this.dataGridView2.Size = new System.Drawing.Size(560, 264);
+            this.dataGridView2.TabIndex = 5;
+            this.dataGridView2.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView2_CellContentClick);
+            this.dataGridView2.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView2_RowPostPaint);
+            // 
+            // textBox2
+            // 
+            this.textBox2.Location = new System.Drawing.Point(33, 14);
+            this.textBox2.Name = "textBox2";
+            this.textBox2.Size = new System.Drawing.Size(172, 21);
+            this.textBox2.TabIndex = 4;
+            // 
+            // tabPage3
+            // 
+            this.tabPage3.Controls.Add(this.dataGridView3);
+            this.tabPage3.Controls.Add(this.textBox3);
+            this.tabPage3.Controls.Add(this.button3);
+            this.tabPage3.Location = new System.Drawing.Point(4, 22);
+            this.tabPage3.Name = "tabPage3";
+            this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage3.Size = new System.Drawing.Size(576, 339);
+            this.tabPage3.TabIndex = 2;
+            this.tabPage3.Text = "院系";
+            this.tabPage3.UseVisualStyleBackColor = true;
+            // 
+            // button2
+            // 
+            this.button2.Location = new System.Drawing.Point(225, 12);
+            this.button2.Name = "button2";
+            this.button2.Size = new System.Drawing.Size(75, 23);
+            this.button2.TabIndex = 3;
+            this.button2.Text = "新增";
+            this.button2.UseVisualStyleBackColor = true;
+            this.button2.Click += new System.EventHandler(this.button2_Click);
+            // 
+            // tabPage2
+            // 
+            this.tabPage2.Controls.Add(this.dataGridView2);
+            this.tabPage2.Controls.Add(this.textBox2);
+            this.tabPage2.Controls.Add(this.button2);
+            this.tabPage2.Location = new System.Drawing.Point(4, 22);
+            this.tabPage2.Name = "tabPage2";
+            this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage2.Size = new System.Drawing.Size(576, 339);
+            this.tabPage2.TabIndex = 1;
+            this.tabPage2.Text = "读者类型";
+            this.tabPage2.UseVisualStyleBackColor = true;
+            // 
+            // textBox1
+            // 
+            this.textBox1.Location = new System.Drawing.Point(34, 21);
+            this.textBox1.Name = "textBox1";
+            this.textBox1.Size = new System.Drawing.Size(172, 21);
+            this.textBox1.TabIndex = 1;
+            // 
+            // button1
+            // 
+            this.button1.Location = new System.Drawing.Point(226, 19);
+            this.button1.Name = "button1";
+            this.button1.Size = new System.Drawing.Size(75, 23);
+            this.button1.TabIndex = 0;
+            this.button1.Text = "新增";
+            this.button1.UseVisualStyleBackColor = true;
+            this.button1.Click += new System.EventHandler(this.button1_Click);
+            // 
+            // tabPage1
+            // 
+            this.tabPage1.Controls.Add(this.dataGridView1);
+            this.tabPage1.Controls.Add(this.textBox1);
+            this.tabPage1.Controls.Add(this.button1);
+            this.tabPage1.Location = new System.Drawing.Point(4, 22);
+            this.tabPage1.Name = "tabPage1";
+            this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
+            this.tabPage1.Size = new System.Drawing.Size(576, 339);
+            this.tabPage1.TabIndex = 0;
+            this.tabPage1.Text = "图书类型";
+            this.tabPage1.UseVisualStyleBackColor = true;
+            // 
+            // dataGridView1
+            // 
+            this.dataGridView1.AllowUserToAddRows = false;
+            this.dataGridView1.AllowUserToDeleteRows = false;
+            this.dataGridView1.AllowUserToResizeColumns = false;
+            this.dataGridView1.AllowUserToResizeRows = false;
+            this.dataGridView1.BackgroundColor = System.Drawing.SystemColors.ActiveCaptionText;
+            this.dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewCellStyle15.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            dataGridViewCellStyle15.BackColor = System.Drawing.SystemColors.Window;
+            dataGridViewCellStyle15.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle15.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle15.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle15.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle15.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle15;
+            this.dataGridView1.Location = new System.Drawing.Point(8, 59);
+            this.dataGridView1.Name = "dataGridView1";
+            dataGridViewCellStyle16.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle16.BackColor = System.Drawing.SystemColors.Control;
+            dataGridViewCellStyle16.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle16.ForeColor = System.Drawing.SystemColors.WindowText;
+            dataGridViewCellStyle16.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle16.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            this.dataGridView1.RowHeadersDefaultCellStyle = dataGridViewCellStyle16;
+            this.dataGridView1.RowTemplate.Height = 23;
+            this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
+            this.dataGridView1.Size = new System.Drawing.Size(560, 264);
+            this.dataGridView1.TabIndex = 2;
+            this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick);
+            // 
+            // tabControl1
+            // 
+            this.tabControl1.Controls.Add(this.tabPage1);
+            this.tabControl1.Controls.Add(this.tabPage2);
+            this.tabControl1.Controls.Add(this.tabPage3);
+            this.tabControl1.Controls.Add(this.tabPage4);
+            this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tabControl1.Location = new System.Drawing.Point(0, 0);
+            this.tabControl1.Name = "tabControl1";
+            this.tabControl1.SelectedIndex = 0;
+            this.tabControl1.Size = new System.Drawing.Size(584, 365);
+            this.tabControl1.TabIndex = 1;
+            // 
+            // Add
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(584, 365);
+            this.Controls.Add(this.tabControl1);
+            this.Name = "Add";
+            this.Text = "数据管理";
+            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Add_FormClosing);
+            this.Load += new System.EventHandler(this.Add_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView4)).EndInit();
+            this.tabPage4.ResumeLayout(false);
+            this.tabPage4.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit();
+            this.tabPage3.ResumeLayout(false);
+            this.tabPage3.PerformLayout();
+            this.tabPage2.ResumeLayout(false);
+            this.tabPage2.PerformLayout();
+            this.tabPage1.ResumeLayout(false);
+            this.tabPage1.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
+            this.tabControl1.ResumeLayout(false);
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        public System.Windows.Forms.DataGridView dataGridView4;
+        private System.Windows.Forms.Button button4;
+        private System.Windows.Forms.TabPage tabPage4;
+        private System.Windows.Forms.TextBox textBox4;
+        public System.Windows.Forms.DataGridView dataGridView3;
+        private System.Windows.Forms.TextBox textBox3;
+        private System.Windows.Forms.Button button3;
+        public System.Windows.Forms.DataGridView dataGridView2;
+        private System.Windows.Forms.TextBox textBox2;
+        private System.Windows.Forms.TabPage tabPage3;
+        private System.Windows.Forms.Button button2;
+        private System.Windows.Forms.TabPage tabPage2;
+        private System.Windows.Forms.TextBox textBox1;
+        private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.TabPage tabPage1;
+        public System.Windows.Forms.DataGridView dataGridView1;
+        private System.Windows.Forms.TabControl tabControl1;
+    }
+}

+ 405 - 0
LibraryManager/Web/Views/Add.cs

@@ -0,0 +1,405 @@
+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 BLL;
+using Model;
+using Common;
+
+namespace Web
+{
+    public partial class Add : Form
+    {
+        public Add()
+        {
+            InitializeComponent();
+        }
+        public BookInfoManager_UI Manager = null;
+        public BookInfoExit_UI bookInfoExit = null;
+        public BookInfoAdd_UI bookInfoAdd = null;
+
+        public ReaderManager_UI readerManager = null;
+        public ReaderExit_UI readerExit = null;
+        public ReaderAdd_UI readerAdd = null;
+
+        public BookType_BLL booktype = new BookType_BLL();
+        public ReaderType_BLL readerType_bll = new ReaderType_BLL();
+        public Department_BLL department_bll = new Department_BLL();
+        public Class_BLL class_bll = new Class_BLL();
+        Com auto = new Com();
+
+        public string tabName = null;
+
+        private void Add_Load(object sender, EventArgs e)
+        {
+            TabControl.TabPageCollection tabs = this.tabControl1.TabPages;
+            for (int i = 0; i < tabs.Count; i++)
+            {
+                if (tabs[i].Text == tabName)
+                {
+                    this.tabControl1.SelectedIndex = i;
+                    break;
+                }
+            }
+
+
+            #region 图书类型表的绑定
+
+            string HeaderText = "ID,图书类型";
+            string DataPropertyNames = "BookTypeId,BookTypeName";
+            //this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+
+            //自动生成列
+            auto.AutoColumn(HeaderText, DataPropertyNames, this.dataGridView1);
+            auto.AddColumn("修改", this.dataGridView1);
+            auto.AddColumn("删除", this.dataGridView1);
+
+            this.dataGridView1.DataSource = booktype.selectBookType1().Tables[0];
+            this.dataGridView1.Columns[0].Visible = false;
+
+            #endregion
+
+            #region 读者类型表的绑定
+
+            string HeaderText1 = "ID,读者类型";
+            string DataPropertyNames1 = "ReaderTypeId,ReaderTypeName";
+            //this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+
+            //自动生成列
+            auto.AutoColumn(HeaderText1, DataPropertyNames1, this.dataGridView2);
+            auto.AddColumn("修改", this.dataGridView2);
+            auto.AddColumn("删除", this.dataGridView2);
+
+            this.dataGridView2.DataSource = readerType_bll.selectReaderType1().Tables[0];
+            this.dataGridView2.Columns[0].Visible = false;
+
+            #endregion
+
+            #region 院系表的绑定
+
+            string HeaderText2 = "ID,院系";
+            string DataPropertyNames2 = "DepartmentId,DepartmentName";
+            //this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+
+            //自动生成列
+            auto.AutoColumn(HeaderText2, DataPropertyNames2, this.dataGridView3);
+            auto.AddColumn("修改", this.dataGridView3);
+            auto.AddColumn("删除", this.dataGridView3);
+
+            this.dataGridView3.DataSource = department_bll.selectDepartment1().Tables[0];
+            this.dataGridView3.Columns[0].Visible = false;
+
+            #endregion
+
+            #region 班级表的绑定
+
+            string HeaderText3 = "ID,班级";
+            string DataPropertyNames3 = "ClassId,ClassName";
+            //this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+
+            //自动生成列
+            auto.AutoColumn(HeaderText3, DataPropertyNames3, this.dataGridView4);
+            auto.AddColumn("修改", this.dataGridView4);
+            auto.AddColumn("删除", this.dataGridView4);
+
+            this.dataGridView4.DataSource = class_bll.selectClass1().Tables[0];
+            this.dataGridView4.Columns[0].Visible = false;
+
+            #endregion
+        }
+        Com com = new Com();
+
+        //添加图书类型
+        private void button1_Click(object sender, EventArgs e)
+        {
+            BookType type = new BookType();
+            type.BookTypeName = textBox1.Text.Trim();
+            if (booktype.AddBookTypeInfo(type) == 0)
+            {
+                MessageBox.Show("添加成功!");
+                this.dataGridView1.DataSource = booktype.selectBookType1().Tables[0];
+
+                //自动找到刚刚添加成功的新行,并选中
+                com.AutoFindRow(type.BookTypeId.ToString(), this.dataGridView1);
+            }
+            else
+            {
+                MessageBox.Show("添加失败!");
+            }
+        }
+
+        //添加读者类型
+        private void button2_Click(object sender, EventArgs e)
+        {
+            ReaderType r = new ReaderType();
+            r.ReaderTypeName = textBox2.Text.Trim();
+            if (readerType_bll.addReaderType(r) == 0)
+            {
+                MessageBox.Show("添加成功!");
+                this.dataGridView2.DataSource = readerType_bll.selectReaderType1().Tables[0];
+
+                //自动找到刚刚添加成功的新行,并选中
+                com.AutoFindRow(r.ReaderTypeId.ToString(), this.dataGridView2);
+            }
+            else
+            {
+                MessageBox.Show("添加失败!");
+            }
+        }
+
+        //添加院系
+        private void button3_Click(object sender, EventArgs e)
+        {
+            Department d = new Department();
+            d.DepartmentName = textBox3.Text.Trim();
+            if (department_bll.addDepartment(d) == 0)
+            {
+                MessageBox.Show("添加成功!");
+                this.dataGridView3.DataSource = department_bll.selectDepartment1().Tables[0];
+
+                //自动找到刚刚添加成功的新行,并选中
+                com.AutoFindRow(d.DepartmentId.ToString(), this.dataGridView3);
+            }
+            else
+            {
+                MessageBox.Show("添加失败!");
+            }
+        }
+
+        //添加班级
+        private void button4_Click(object sender, EventArgs e)
+        {
+            Class c = new Class();
+            c.ClassName = textBox4.Text.Trim();
+            if (class_bll.AddClass(c) == 0)
+            {
+                MessageBox.Show("添加成功!");
+                this.dataGridView4.DataSource = class_bll.selectClass1().Tables[0];
+
+                //自动找到刚刚添加成功的新行,并选中
+                com.AutoFindRow(c.ClassId.ToString(), this.dataGridView4);
+            }
+            else
+            {
+                MessageBox.Show("添加失败!");
+            }
+        }
+
+        //当编辑绑定完 DataGridView所有单元格之后,执行绘制引发的事件
+        private void dataGridView2_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
+        {
+            System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(e.RowBounds.Location.X,
+               e.RowBounds.Location.Y,
+               dataGridView1.RowHeadersWidth - 4,
+               e.RowBounds.Height);
+
+            TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
+                dataGridView1.RowHeadersDefaultCellStyle.Font,
+                rectangle,
+                dataGridView1.RowHeadersDefaultCellStyle.ForeColor,
+                TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
+        }
+
+        //图书类型表的单元格单击事件
+        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            //选中行的图书编号
+            int str = -1;
+            try
+            {
+                str = (int)dataGridView1.Rows[e.RowIndex].Cells[0].Value;
+            }
+            catch (Exception) { }
+
+            //DataGridView的总列数
+            int rows = dataGridView1.Columns.Count;
+
+            if (e.ColumnIndex == rows - 2)//修改
+            {
+                BookType t = new BookType();
+                t.BookTypeId = str;
+                t.BookTypeName = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
+                Exit exit = new Exit();
+                exit.aa = this;
+                exit.t = t;
+                exit.Text = "修改图书类型";
+                exit.ShowDialog();
+            }
+            else if (e.ColumnIndex == rows - 1)//删除
+            {
+                DialogResult result = MessageBox.Show("确定删除吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+                if (result == DialogResult.OK)
+                {
+                    if (booktype.deleteBookType(str) > 0)
+                    {
+                        this.dataGridView1.DataSource = booktype.selectBookType1().Tables[0];
+                    }
+                    else
+                    {
+                        MessageBox.Show("删除失败!");
+                    }
+                }
+            }
+        }
+
+        //读者类型表的单元格单击事件
+        private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            //选中行的图书编号
+            int str = -1;
+            try
+            {
+                str = (int)dataGridView2.Rows[e.RowIndex].Cells[0].Value;
+            }
+            catch (Exception) { }
+
+            //DataGridView的总列数
+            int rows = dataGridView2.Columns.Count;
+
+            if (e.ColumnIndex == rows - 2)//修改
+            {
+                ReaderType r = new ReaderType();
+                r.ReaderTypeId = str;
+                r.ReaderTypeName = dataGridView2.Rows[e.RowIndex].Cells[1].Value.ToString();
+                Exit exit = new Exit();
+                exit.aa = this;
+                exit.r = r;
+                exit.Text = "修改读者类型";
+                exit.ShowDialog();
+            }
+            else if (e.ColumnIndex == rows - 1)//删除
+            {
+                DialogResult result = MessageBox.Show("确定删除吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+                if (result == DialogResult.OK)
+                {
+                    if (readerType_bll.deleteReader(str) > 0)
+                    {
+                        this.dataGridView2.DataSource = readerType_bll.selectReaderType1().Tables[0];
+                    }
+                    else
+                    {
+                        MessageBox.Show("删除失败!");
+                    }
+                }
+            }
+        }
+
+        //院系表的单元格单击事件
+        private void dataGridView3_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            //选中行的图书编号
+            int str = -1;
+            try
+            {
+                str = (int)dataGridView3.Rows[e.RowIndex].Cells[0].Value;
+            }
+            catch (Exception) { }
+
+            //DataGridView的总列数
+            int rows = dataGridView3.Columns.Count;
+
+            if (e.ColumnIndex == rows - 2)//修改
+            {
+                Department d = new Department();
+                d.DepartmentId = str;
+                d.DepartmentName = dataGridView3.Rows[e.RowIndex].Cells[1].Value.ToString();
+                Exit exit = new Exit();
+                exit.aa = this;
+                exit.d = d;
+                exit.Text = "修改院系";
+                exit.ShowDialog();
+            }
+            else if (e.ColumnIndex == rows - 1)//删除
+            {
+                DialogResult result = MessageBox.Show("确定删除吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+                if (result == DialogResult.OK)
+                {
+                    if (department_bll.deleteDepartment(str) > 0)
+                    {
+                        this.dataGridView3.DataSource = department_bll.selectDepartment1().Tables[0];
+                    }
+                    else
+                    {
+                        MessageBox.Show("删除失败!");
+                    }
+                }
+            }
+        }
+
+        //班级表的单元格单击事件
+        private void dataGridView4_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            //选中行的图书编号
+            int str = -1;
+            try
+            {
+                str = (int)dataGridView4.Rows[e.RowIndex].Cells[0].Value;
+            }
+            catch (Exception) { }
+
+            //DataGridView的总列数
+            int rows = dataGridView4.Columns.Count;
+
+            if (e.ColumnIndex == rows - 2)//修改
+            {
+                Class c = new Class();
+                c.ClassId = str;
+                c.ClassName = dataGridView4.Rows[e.RowIndex].Cells[1].Value.ToString();
+                Exit exit = new Exit();
+                exit.aa = this;
+                exit.c = c;
+                exit.Text = "修改班级";
+                exit.ShowDialog();
+            }
+            else if (e.ColumnIndex == rows - 1)//删除
+            {
+                DialogResult result = MessageBox.Show("确定删除吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+                if (result == DialogResult.OK)
+                {
+                    if (class_bll.deleteClass(str) > 0)
+                    {
+                        this.dataGridView4.DataSource = class_bll.selectClass1().Tables[0];
+                    }
+                    else
+                    {
+                        MessageBox.Show("删除失败!");
+                    }
+                }
+            }
+        }
+
+        //窗口关闭时为了刷新前一个窗体的下拉菜单
+        private void Add_FormClosing(object sender, FormClosingEventArgs e)
+        {
+            if (bookInfoExit != null)
+            {
+                bookInfoExit.BookInfoExit_UI_Load(null, null);
+            }
+            if (readerExit != null)
+            {
+                readerExit.ReaderExit_UI_Load(null, null);
+            }
+            if (Manager != null)
+            {
+                Manager.treeView1.Nodes.Clear();
+                Manager.TreeViewBand();
+                Manager.btnSelect_Click(null, null);
+            }
+            if (bookInfoAdd != null)
+            {
+                bookInfoAdd.BookInfoAdd_UI_Load(null, null);
+            }
+            if (readerManager != null)
+            {
+                readerManager.treeView1.Nodes.Clear();
+                readerManager.TreeViewBand();
+                readerManager.btnSelect_Click(null, null);
+            }
+        }
+    }
+}

+ 120 - 0
LibraryManager/Web/Views/Add.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 499 - 0
LibraryManager/Web/Views/BookInfoAdd_UI.Designer.cs

@@ -0,0 +1,499 @@
+namespace Web
+{
+    partial class BookInfoAdd_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BookInfoAdd_UI));
+            this.label2 = new System.Windows.Forms.Label();
+            this.label16 = new System.Windows.Forms.Label();
+            this.txtVersions = new System.Windows.Forms.TextBox();
+            this.label14 = new System.Windows.Forms.Label();
+            this.label13 = new System.Windows.Forms.Label();
+            this.txtAddress = new System.Windows.Forms.TextBox();
+            this.label12 = new System.Windows.Forms.Label();
+            this.txtBookRemark = new System.Windows.Forms.TextBox();
+            this.cboBookTypeId = new System.Windows.Forms.ComboBox();
+            this.TimeIn = new System.Windows.Forms.DateTimePicker();
+            this.label15 = new System.Windows.Forms.Label();
+            this.label11 = new System.Windows.Forms.Label();
+            this.txtPrice = new System.Windows.Forms.TextBox();
+            this.label10 = new System.Windows.Forms.Label();
+            this.txtLanguge = new System.Windows.Forms.TextBox();
+            this.txtBookName = new System.Windows.Forms.TextBox();
+            this.label8 = new System.Windows.Forms.Label();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.lab = new System.Windows.Forms.Label();
+            this.label9 = new System.Windows.Forms.Label();
+            this.checkBox1 = new System.Windows.Forms.CheckBox();
+            this.txtBookId = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.txtLayout = new System.Windows.Forms.TextBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.txtBookNumber = new System.Windows.Forms.TextBox();
+            this.label6 = new System.Windows.Forms.Label();
+            this.button1 = new System.Windows.Forms.Button();
+            this.txtTranslator = new System.Windows.Forms.TextBox();
+            this.button2 = new System.Windows.Forms.Button();
+            this.label5 = new System.Windows.Forms.Label();
+            this.txtAuthor = new System.Windows.Forms.TextBox();
+            this.txtPinYinCode = new System.Windows.Forms.TextBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.txtISBS = new System.Windows.Forms.TextBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.button4 = new System.Windows.Forms.Button();
+            this.groupBox1.SuspendLayout();
+            this.groupBox2.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label2.ForeColor = System.Drawing.Color.Blue;
+            this.label2.Location = new System.Drawing.Point(352, 40);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(53, 12);
+            this.label2.TabIndex = 1;
+            this.label2.Text = "图书名称";
+            // 
+            // label16
+            // 
+            this.label16.AutoSize = true;
+            this.label16.Location = new System.Drawing.Point(352, 187);
+            this.label16.Name = "label16";
+            this.label16.Size = new System.Drawing.Size(53, 12);
+            this.label16.TabIndex = 15;
+            this.label16.Text = "版    本";
+            // 
+            // txtVersions
+            // 
+            this.txtVersions.Location = new System.Drawing.Point(411, 184);
+            this.txtVersions.Name = "txtVersions";
+            this.txtVersions.Size = new System.Drawing.Size(152, 21);
+            this.txtVersions.TabIndex = 22;
+            // 
+            // label14
+            // 
+            this.label14.AutoSize = true;
+            this.label14.Location = new System.Drawing.Point(571, 113);
+            this.label14.Name = "label14";
+            this.label14.Size = new System.Drawing.Size(59, 12);
+            this.label14.TabIndex = 16;
+            this.label14.Text = "(单位/¥)";
+            // 
+            // label13
+            // 
+            this.label13.AutoSize = true;
+            this.label13.Location = new System.Drawing.Point(352, 152);
+            this.label13.Name = "label13";
+            this.label13.Size = new System.Drawing.Size(53, 12);
+            this.label13.TabIndex = 17;
+            this.label13.Text = "存放位置";
+            // 
+            // txtAddress
+            // 
+            this.txtAddress.Location = new System.Drawing.Point(411, 149);
+            this.txtAddress.Name = "txtAddress";
+            this.txtAddress.Size = new System.Drawing.Size(152, 21);
+            this.txtAddress.TabIndex = 23;
+            // 
+            // label12
+            // 
+            this.label12.AutoSize = true;
+            this.label12.Location = new System.Drawing.Point(18, 227);
+            this.label12.Name = "label12";
+            this.label12.Size = new System.Drawing.Size(53, 12);
+            this.label12.TabIndex = 14;
+            this.label12.Text = "内容描述";
+            // 
+            // txtBookRemark
+            // 
+            this.txtBookRemark.Location = new System.Drawing.Point(77, 227);
+            this.txtBookRemark.Multiline = true;
+            this.txtBookRemark.Name = "txtBookRemark";
+            this.txtBookRemark.Size = new System.Drawing.Size(486, 106);
+            this.txtBookRemark.TabIndex = 28;
+            // 
+            // cboBookTypeId
+            // 
+            this.cboBookTypeId.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboBookTypeId.FormattingEnabled = true;
+            this.cboBookTypeId.Location = new System.Drawing.Point(411, 76);
+            this.cboBookTypeId.Name = "cboBookTypeId";
+            this.cboBookTypeId.Size = new System.Drawing.Size(152, 20);
+            this.cboBookTypeId.TabIndex = 8;
+            // 
+            // TimeIn
+            // 
+            this.TimeIn.Location = new System.Drawing.Point(81, 71);
+            this.TimeIn.Name = "TimeIn";
+            this.TimeIn.Size = new System.Drawing.Size(152, 21);
+            this.TimeIn.TabIndex = 6;
+            // 
+            // label15
+            // 
+            this.label15.AutoSize = true;
+            this.label15.ForeColor = System.Drawing.Color.Blue;
+            this.label15.Location = new System.Drawing.Point(22, 77);
+            this.label15.Name = "label15";
+            this.label15.Size = new System.Drawing.Size(53, 12);
+            this.label15.TabIndex = 1;
+            this.label15.Text = "登记时间";
+            // 
+            // label11
+            // 
+            this.label11.AutoSize = true;
+            this.label11.Location = new System.Drawing.Point(352, 113);
+            this.label11.Name = "label11";
+            this.label11.Size = new System.Drawing.Size(53, 12);
+            this.label11.TabIndex = 13;
+            this.label11.Text = "图书价格";
+            // 
+            // txtPrice
+            // 
+            this.txtPrice.Location = new System.Drawing.Point(411, 110);
+            this.txtPrice.Name = "txtPrice";
+            this.txtPrice.Size = new System.Drawing.Size(152, 21);
+            this.txtPrice.TabIndex = 19;
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.Location = new System.Drawing.Point(352, 72);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(53, 12);
+            this.label10.TabIndex = 8;
+            this.label10.Text = "语    言";
+            // 
+            // txtLanguge
+            // 
+            this.txtLanguge.Location = new System.Drawing.Point(411, 69);
+            this.txtLanguge.Name = "txtLanguge";
+            this.txtLanguge.Size = new System.Drawing.Size(152, 21);
+            this.txtLanguge.TabIndex = 25;
+            // 
+            // txtBookName
+            // 
+            this.txtBookName.Location = new System.Drawing.Point(411, 37);
+            this.txtBookName.Name = "txtBookName";
+            this.txtBookName.Size = new System.Drawing.Size(152, 21);
+            this.txtBookName.TabIndex = 2;
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Location = new System.Drawing.Point(18, 152);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(53, 12);
+            this.label8.TabIndex = 7;
+            this.label8.Text = "印刷版面";
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.lab);
+            this.groupBox1.Controls.Add(this.cboBookTypeId);
+            this.groupBox1.Controls.Add(this.button4);
+            this.groupBox1.Controls.Add(this.TimeIn);
+            this.groupBox1.Controls.Add(this.label15);
+            this.groupBox1.Controls.Add(this.label9);
+            this.groupBox1.Controls.Add(this.txtBookName);
+            this.groupBox1.Controls.Add(this.label2);
+            this.groupBox1.Controls.Add(this.checkBox1);
+            this.groupBox1.Controls.Add(this.txtBookId);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Location = new System.Drawing.Point(12, 12);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(658, 115);
+            this.groupBox1.TabIndex = 10;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "图书基本信息(必填)";
+            // 
+            // lab
+            // 
+            this.lab.AutoSize = true;
+            this.lab.ForeColor = System.Drawing.Color.Red;
+            this.lab.Location = new System.Drawing.Point(79, 22);
+            this.lab.Name = "lab";
+            this.lab.Size = new System.Drawing.Size(0, 12);
+            this.lab.TabIndex = 9;
+            // 
+            // label9
+            // 
+            this.label9.AutoSize = true;
+            this.label9.ForeColor = System.Drawing.Color.Blue;
+            this.label9.Location = new System.Drawing.Point(352, 77);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(53, 12);
+            this.label9.TabIndex = 1;
+            this.label9.Text = "图书分类";
+            // 
+            // checkBox1
+            // 
+            this.checkBox1.AutoSize = true;
+            this.checkBox1.Checked = true;
+            this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.checkBox1.Location = new System.Drawing.Point(239, 39);
+            this.checkBox1.Name = "checkBox1";
+            this.checkBox1.Size = new System.Drawing.Size(72, 16);
+            this.checkBox1.TabIndex = 4;
+            this.checkBox1.Text = "默认编号";
+            this.checkBox1.UseVisualStyleBackColor = true;
+            // 
+            // txtBookId
+            // 
+            this.txtBookId.Location = new System.Drawing.Point(81, 37);
+            this.txtBookId.Name = "txtBookId";
+            this.txtBookId.Size = new System.Drawing.Size(152, 21);
+            this.txtBookId.TabIndex = 2;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label1.ForeColor = System.Drawing.Color.Blue;
+            this.label1.Location = new System.Drawing.Point(22, 40);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(53, 12);
+            this.label1.TabIndex = 1;
+            this.label1.Text = "图书编号";
+            // 
+            // txtLayout
+            // 
+            this.txtLayout.Location = new System.Drawing.Point(77, 149);
+            this.txtLayout.Name = "txtLayout";
+            this.txtLayout.Size = new System.Drawing.Size(152, 21);
+            this.txtLayout.TabIndex = 24;
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(18, 113);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(53, 12);
+            this.label7.TabIndex = 6;
+            this.label7.Text = "页    数";
+            // 
+            // txtBookNumber
+            // 
+            this.txtBookNumber.Location = new System.Drawing.Point(77, 110);
+            this.txtBookNumber.Name = "txtBookNumber";
+            this.txtBookNumber.Size = new System.Drawing.Size(152, 21);
+            this.txtBookNumber.TabIndex = 27;
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(18, 72);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(53, 12);
+            this.label6.TabIndex = 9;
+            this.label6.Text = "翻 译 者";
+            // 
+            // button1
+            // 
+            this.button1.Location = new System.Drawing.Point(390, 522);
+            this.button1.Name = "button1";
+            this.button1.Size = new System.Drawing.Size(75, 23);
+            this.button1.TabIndex = 11;
+            this.button1.Text = "保存";
+            this.button1.UseVisualStyleBackColor = true;
+            this.button1.Click += new System.EventHandler(this.button1_Click);
+            // 
+            // txtTranslator
+            // 
+            this.txtTranslator.Location = new System.Drawing.Point(77, 69);
+            this.txtTranslator.Name = "txtTranslator";
+            this.txtTranslator.Size = new System.Drawing.Size(152, 21);
+            this.txtTranslator.TabIndex = 26;
+            // 
+            // button2
+            // 
+            this.button2.Location = new System.Drawing.Point(500, 522);
+            this.button2.Name = "button2";
+            this.button2.Size = new System.Drawing.Size(75, 23);
+            this.button2.TabIndex = 12;
+            this.button2.Text = "退出";
+            this.button2.UseVisualStyleBackColor = true;
+            this.button2.Click += new System.EventHandler(this.button2_Click);
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(18, 34);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(53, 12);
+            this.label5.TabIndex = 12;
+            this.label5.Text = "作    者";
+            // 
+            // txtAuthor
+            // 
+            this.txtAuthor.Location = new System.Drawing.Point(77, 31);
+            this.txtAuthor.Name = "txtAuthor";
+            this.txtAuthor.Size = new System.Drawing.Size(152, 21);
+            this.txtAuthor.TabIndex = 18;
+            // 
+            // txtPinYinCode
+            // 
+            this.txtPinYinCode.Location = new System.Drawing.Point(411, 31);
+            this.txtPinYinCode.Name = "txtPinYinCode";
+            this.txtPinYinCode.Size = new System.Drawing.Size(152, 21);
+            this.txtPinYinCode.TabIndex = 20;
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(352, 34);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(53, 12);
+            this.label4.TabIndex = 11;
+            this.label4.Text = "拼 音 码";
+            // 
+            // txtISBS
+            // 
+            this.txtISBS.Location = new System.Drawing.Point(77, 184);
+            this.txtISBS.Name = "txtISBS";
+            this.txtISBS.Size = new System.Drawing.Size(152, 21);
+            this.txtISBS.TabIndex = 21;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(18, 187);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(53, 12);
+            this.label3.TabIndex = 10;
+            this.label3.Text = "ISBS  码";
+            // 
+            // groupBox2
+            // 
+            this.groupBox2.Controls.Add(this.label16);
+            this.groupBox2.Controls.Add(this.txtVersions);
+            this.groupBox2.Controls.Add(this.label14);
+            this.groupBox2.Controls.Add(this.label13);
+            this.groupBox2.Controls.Add(this.txtAddress);
+            this.groupBox2.Controls.Add(this.label12);
+            this.groupBox2.Controls.Add(this.txtBookRemark);
+            this.groupBox2.Controls.Add(this.label11);
+            this.groupBox2.Controls.Add(this.txtPrice);
+            this.groupBox2.Controls.Add(this.label10);
+            this.groupBox2.Controls.Add(this.txtLanguge);
+            this.groupBox2.Controls.Add(this.label8);
+            this.groupBox2.Controls.Add(this.txtLayout);
+            this.groupBox2.Controls.Add(this.label7);
+            this.groupBox2.Controls.Add(this.txtBookNumber);
+            this.groupBox2.Controls.Add(this.label6);
+            this.groupBox2.Controls.Add(this.txtTranslator);
+            this.groupBox2.Controls.Add(this.label5);
+            this.groupBox2.Controls.Add(this.txtAuthor);
+            this.groupBox2.Controls.Add(this.txtPinYinCode);
+            this.groupBox2.Controls.Add(this.label4);
+            this.groupBox2.Controls.Add(this.txtISBS);
+            this.groupBox2.Controls.Add(this.label3);
+            this.groupBox2.Location = new System.Drawing.Point(12, 144);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Size = new System.Drawing.Size(658, 356);
+            this.groupBox2.TabIndex = 13;
+            this.groupBox2.TabStop = false;
+            this.groupBox2.Text = "图书详细信息(可选)";
+            // 
+            // button4
+            // 
+            this.button4.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button4.BackgroundImage")));
+            this.button4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.button4.ForeColor = System.Drawing.SystemColors.Control;
+            this.button4.Location = new System.Drawing.Point(573, 74);
+            this.button4.Name = "button4";
+            this.button4.Size = new System.Drawing.Size(36, 23);
+            this.button4.TabIndex = 7;
+            this.button4.UseVisualStyleBackColor = true;
+            this.button4.Click += new System.EventHandler(this.button4_Click);
+            // 
+            // BookInfoAdd_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(683, 558);
+            this.Controls.Add(this.groupBox1);
+            this.Controls.Add(this.button1);
+            this.Controls.Add(this.button2);
+            this.Controls.Add(this.groupBox2);
+            this.Name = "BookInfoAdd_UI";
+            this.Text = "添加图书";
+            this.Load += new System.EventHandler(this.BookInfoAdd_UI_Load);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.groupBox2.ResumeLayout(false);
+            this.groupBox2.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label16;
+        private System.Windows.Forms.TextBox txtVersions;
+        private System.Windows.Forms.Label label14;
+        private System.Windows.Forms.Label label13;
+        private System.Windows.Forms.TextBox txtAddress;
+        private System.Windows.Forms.Label label12;
+        private System.Windows.Forms.TextBox txtBookRemark;
+        private System.Windows.Forms.ComboBox cboBookTypeId;
+        private System.Windows.Forms.DateTimePicker TimeIn;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.Label label11;
+        private System.Windows.Forms.TextBox txtPrice;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.TextBox txtLanguge;
+        private System.Windows.Forms.TextBox txtBookName;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.Label lab;
+        private System.Windows.Forms.Button button4;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.CheckBox checkBox1;
+        private System.Windows.Forms.TextBox txtBookId;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.TextBox txtLayout;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.TextBox txtBookNumber;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.Button button1;
+        private System.Windows.Forms.TextBox txtTranslator;
+        private System.Windows.Forms.Button button2;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.TextBox txtAuthor;
+        private System.Windows.Forms.TextBox txtPinYinCode;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.TextBox txtISBS;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.GroupBox groupBox2;
+    }
+}

+ 116 - 0
LibraryManager/Web/Views/BookInfoAdd_UI.cs

@@ -0,0 +1,116 @@
+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 Model;
+using BLL;
+using Common;
+
+namespace Web
+{
+    public partial class BookInfoAdd_UI : Form
+    {
+        public BookInfoAdd_UI()
+        {
+            InitializeComponent();
+        }
+        public BookInfoManager_UI manager = null;
+        Com com = new Com();
+
+        private void button3_MouseEnter(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Standard;
+        }
+
+        private void button3_MouseLeave(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Flat;
+        }
+        BookInfo_BLL bookInfo = new BookInfo_BLL();
+        BookType_BLL bookType = new BookType_BLL();
+
+        public void BookInfoAdd_UI_Load(object sender, EventArgs e)
+        {
+            this.cboBookTypeId.DataSource = bookType.selectBookType();
+            this.cboBookTypeId.DisplayMember = "BookTypeName";
+            this.cboBookTypeId.ValueMember = "BookTypeId";
+        }
+        /// <summary>
+        /// 添加图书信息
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void button1_Click(object sender, EventArgs e)
+        {
+            //图书编号必须唯一
+            int rows = this.manager.dataGridView1.RowCount;
+            lab.Text = "";
+            for (int i = 0; i < rows; i++)
+            {
+                string Columns1 = this.manager.dataGridView1.Rows[i].Cells[0].Value.ToString();
+                if (Columns1 == txtBookId.Text.Trim())
+                {
+                    lab.Text = "图书编号已存在!";
+                    return;
+                }
+            }
+
+            //创建添加的对象
+            BookInfo book = new BookInfo();
+            book.BookId = txtBookId.Text.Trim();
+            book.BookName = txtBookName.Text.Trim();
+            book.TimeIn = TimeIn.Value;
+            book.BookTypeId = (int)cboBookTypeId.SelectedValue;
+            book.Author = txtAuthor.Text.Trim();
+            book.PinYinCode = txtPinYinCode.Text.Trim();
+            book.Translator = txtTranslator.Text.Trim();
+            book.Language = txtLanguge.Text.Trim();
+            book.BookNumber = txtBookNumber.Text.Trim();
+            book.Price = txtPrice.Text.Trim();
+            book.Layout = txtLayout.Text.Trim();
+            book.Address = txtAddress.Text.Trim();
+            book.ISBS = txtISBS.Text.Trim();
+            book.Versions = txtVersions.Text.Trim();
+            book.BookRemark = txtBookRemark.Text.Trim();
+
+            if (bookInfo.AddBookInfo(book) > 0)
+            {
+                MessageBox.Show("添加信息成功!");
+                //图书类型信息的绑定
+                manager.dataGridView1.DataSource = manager.bookInfo_bll.selectBookInfo1().Tables[0];
+
+                //自动找到刚刚添加成功的新行,并选中
+                com.AutoFindRow(txtBookId.Text.Trim(), this.manager.dataGridView1);
+            }
+            else
+            {
+                MessageBox.Show("添加信息失败!");
+            }
+        }
+
+        /// <summary>
+        /// 添加图书分类
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void button4_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "图书类型";
+            a.bookInfoAdd = this;
+            a.Manager = this.manager;
+            a.ShowDialog();
+        }
+
+        private void button2_Click(object sender, EventArgs e)
+        {
+            this.Close();
+        }
+
+    }
+}

+ 434 - 0
LibraryManager/Web/Views/BookInfoAdd_UI.resx

@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="button4.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        pYxXAAAAAElFTkSuQmCC
+</value>
+  </data>
+</root>

+ 140 - 0
LibraryManager/Web/Views/BookInfoExitRows_UI.Designer.cs

@@ -0,0 +1,140 @@
+namespace Web
+{
+    partial class BookInfoExitRows_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.btnClose = new System.Windows.Forms.Button();
+            this.label2 = new System.Windows.Forms.Label();
+            this.label1 = new System.Windows.Forms.Label();
+            this.btnRight = new System.Windows.Forms.Button();
+            this.btnLeft = new System.Windows.Forms.Button();
+            this.listBox2 = new System.Windows.Forms.ListBox();
+            this.listBox1 = new System.Windows.Forms.ListBox();
+            this.SuspendLayout();
+            // 
+            // btnClose
+            // 
+            this.btnClose.Location = new System.Drawing.Point(238, 258);
+            this.btnClose.Name = "btnClose";
+            this.btnClose.Size = new System.Drawing.Size(75, 23);
+            this.btnClose.TabIndex = 10;
+            this.btnClose.Text = "退出";
+            this.btnClose.UseVisualStyleBackColor = true;
+            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(338, 9);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(53, 12);
+            this.label2.TabIndex = 8;
+            this.label2.Text = "隐藏的列";
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(12, 9);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(53, 12);
+            this.label1.TabIndex = 9;
+            this.label1.Text = "显示的列";
+            // 
+            // btnRight
+            // 
+            this.btnRight.Location = new System.Drawing.Point(238, 151);
+            this.btnRight.Name = "btnRight";
+            this.btnRight.Size = new System.Drawing.Size(75, 23);
+            this.btnRight.TabIndex = 6;
+            this.btnRight.Text = ">";
+            this.btnRight.UseVisualStyleBackColor = true;
+            this.btnRight.Click += new System.EventHandler(this.btnRight_Click);
+            // 
+            // btnLeft
+            // 
+            this.btnLeft.Location = new System.Drawing.Point(238, 95);
+            this.btnLeft.Name = "btnLeft";
+            this.btnLeft.Size = new System.Drawing.Size(75, 23);
+            this.btnLeft.TabIndex = 7;
+            this.btnLeft.Text = "<";
+            this.btnLeft.UseVisualStyleBackColor = true;
+            this.btnLeft.Click += new System.EventHandler(this.btnLeft_Click);
+            // 
+            // listBox2
+            // 
+            this.listBox2.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.listBox2.FormattingEnabled = true;
+            this.listBox2.ItemHeight = 16;
+            this.listBox2.Location = new System.Drawing.Point(340, 24);
+            this.listBox2.Name = "listBox2";
+            this.listBox2.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.listBox2.Size = new System.Drawing.Size(215, 276);
+            this.listBox2.TabIndex = 4;
+            // 
+            // listBox1
+            // 
+            this.listBox1.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.listBox1.FormattingEnabled = true;
+            this.listBox1.ItemHeight = 16;
+            this.listBox1.Location = new System.Drawing.Point(12, 24);
+            this.listBox1.Name = "listBox1";
+            this.listBox1.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
+            this.listBox1.Size = new System.Drawing.Size(210, 276);
+            this.listBox1.TabIndex = 5;
+            // 
+            // BookInfoExitRows_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(571, 317);
+            this.Controls.Add(this.btnClose);
+            this.Controls.Add(this.label2);
+            this.Controls.Add(this.label1);
+            this.Controls.Add(this.btnRight);
+            this.Controls.Add(this.btnLeft);
+            this.Controls.Add(this.listBox2);
+            this.Controls.Add(this.listBox1);
+            this.Name = "BookInfoExitRows_UI";
+            this.Text = "显示的列";
+            this.Load += new System.EventHandler(this.BookInfoExitRows_UI_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btnClose;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Button btnRight;
+        private System.Windows.Forms.Button btnLeft;
+        private System.Windows.Forms.ListBox listBox2;
+        private System.Windows.Forms.ListBox listBox1;
+    }
+}

+ 102 - 0
LibraryManager/Web/Views/BookInfoExitRows_UI.cs

@@ -0,0 +1,102 @@
+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 Web
+{
+    public partial class BookInfoExitRows_UI : Form
+    {
+        public BookInfoExitRows_UI()
+        {
+            InitializeComponent();
+        }
+        public BookInfoManager_UI Book = null;
+        public ReaderManager_UI Reader = null;
+
+        DataGridViewColumnCollection columns;
+
+        private void BookInfoExitRows_UI_Load(object sender, EventArgs e)
+        {
+            if (Book != null)
+            {
+                columns = Book.dataGridView1.Columns;
+            }
+            else if (Reader != null)
+            {
+                columns = Reader.dgvHeaderInfo.Columns;
+            }
+            for (int i = 0; i < columns.Count - 2; i++)
+            {
+                if (columns[i].Visible == true)
+                {
+                    listBox1.Items.Add(columns[i].HeaderText);
+                }
+                else
+                {
+                    listBox2.Items.Add(columns[i].HeaderText);
+                }
+            }
+        }
+        //左移
+        private void btnLeft_Click(object sender, EventArgs e)
+        {
+            ListBox.SelectedObjectCollection selectListBox2 = listBox2.SelectedItems;
+            for (int i = 0; i < selectListBox2.Count; i++)
+            {
+                listBox1.Items.Add(selectListBox2[i]);
+                for (int j = 0; j < columns.Count - 2; j++)
+                {
+                    if (columns[j].HeaderText == selectListBox2[i].ToString())
+                    {
+                        columns[j].Visible = true;
+                    }
+                }
+            }
+
+            ListBox.SelectedIndexCollection indices = listBox2.SelectedIndices;
+
+            for (int i = indices.Count - 1; i >= 0; i--)
+            {
+                int index = indices[i];
+                listBox2.Items.RemoveAt(index);
+            }
+        }
+        //右移
+        private void btnRight_Click(object sender, EventArgs e)
+        {
+            ListBox.SelectedObjectCollection selectListBox1 = listBox1.SelectedItems;
+            for (int i = 0; i < selectListBox1.Count; i++)
+            {
+                listBox2.Items.Add(selectListBox1[i]);
+                for (int j = 0; j < columns.Count - 2; j++)
+                {
+                    if (columns[j].HeaderText == selectListBox1[i].ToString())
+                    {
+                        columns[j].Visible = false;
+                    }
+                }
+            }
+
+
+            ListBox.SelectedIndexCollection indices = listBox1.SelectedIndices;
+            for (int i = indices.Count - 1; i >= 0; i--)
+            {
+                int index = indices[i];
+                listBox1.Items.RemoveAt(index);
+
+            }
+        }
+
+        private void btnClose_Click(object sender, EventArgs e)
+        {
+            this.Close();
+        }
+
+    }
+}

+ 120 - 0
LibraryManager/Web/Views/BookInfoExitRows_UI.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 473 - 0
LibraryManager/Web/Views/BookInfoExit_UI.Designer.cs

@@ -0,0 +1,473 @@
+namespace Web
+{
+    partial class BookInfoExit_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BookInfoExit_UI));
+            this.button2 = new System.Windows.Forms.Button();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.cboBookTypeId = new System.Windows.Forms.ComboBox();
+            this.TimeIn = new System.Windows.Forms.DateTimePicker();
+            this.label15 = new System.Windows.Forms.Label();
+            this.label9 = new System.Windows.Forms.Label();
+            this.txtBookName = new System.Windows.Forms.TextBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.txtBookId = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.label16 = new System.Windows.Forms.Label();
+            this.txtVersions = new System.Windows.Forms.TextBox();
+            this.label14 = new System.Windows.Forms.Label();
+            this.label13 = new System.Windows.Forms.Label();
+            this.txtAddress = new System.Windows.Forms.TextBox();
+            this.label12 = new System.Windows.Forms.Label();
+            this.txtBookRemark = new System.Windows.Forms.TextBox();
+            this.label11 = new System.Windows.Forms.Label();
+            this.txtPrice = new System.Windows.Forms.TextBox();
+            this.label10 = new System.Windows.Forms.Label();
+            this.txtLanguge = new System.Windows.Forms.TextBox();
+            this.label8 = new System.Windows.Forms.Label();
+            this.txtLayout = new System.Windows.Forms.TextBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.txtBookNumber = new System.Windows.Forms.TextBox();
+            this.label6 = new System.Windows.Forms.Label();
+            this.txtTranslator = new System.Windows.Forms.TextBox();
+            this.label5 = new System.Windows.Forms.Label();
+            this.txtAuthor = new System.Windows.Forms.TextBox();
+            this.txtPinYinCode = new System.Windows.Forms.TextBox();
+            this.label4 = new System.Windows.Forms.Label();
+            this.txtISBS = new System.Windows.Forms.TextBox();
+            this.label3 = new System.Windows.Forms.Label();
+            this.btnSave = new System.Windows.Forms.Button();
+            this.button4 = new System.Windows.Forms.Button();
+            this.groupBox1.SuspendLayout();
+            this.groupBox2.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // button2
+            // 
+            this.button2.Location = new System.Drawing.Point(500, 522);
+            this.button2.Name = "button2";
+            this.button2.Size = new System.Drawing.Size(75, 23);
+            this.button2.TabIndex = 16;
+            this.button2.Text = "退出";
+            this.button2.UseVisualStyleBackColor = true;
+            this.button2.Click += new System.EventHandler(this.button2_Click);
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.cboBookTypeId);
+            this.groupBox1.Controls.Add(this.button4);
+            this.groupBox1.Controls.Add(this.TimeIn);
+            this.groupBox1.Controls.Add(this.label15);
+            this.groupBox1.Controls.Add(this.label9);
+            this.groupBox1.Controls.Add(this.txtBookName);
+            this.groupBox1.Controls.Add(this.label2);
+            this.groupBox1.Controls.Add(this.txtBookId);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Location = new System.Drawing.Point(12, 12);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(658, 115);
+            this.groupBox1.TabIndex = 14;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "图书基本信息(必填)";
+            // 
+            // cboBookTypeId
+            // 
+            this.cboBookTypeId.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboBookTypeId.FormattingEnabled = true;
+            this.cboBookTypeId.Location = new System.Drawing.Point(411, 76);
+            this.cboBookTypeId.Name = "cboBookTypeId";
+            this.cboBookTypeId.Size = new System.Drawing.Size(152, 20);
+            this.cboBookTypeId.TabIndex = 8;
+            // 
+            // TimeIn
+            // 
+            this.TimeIn.Location = new System.Drawing.Point(81, 71);
+            this.TimeIn.Name = "TimeIn";
+            this.TimeIn.Size = new System.Drawing.Size(152, 21);
+            this.TimeIn.TabIndex = 6;
+            // 
+            // label15
+            // 
+            this.label15.AutoSize = true;
+            this.label15.ForeColor = System.Drawing.Color.Blue;
+            this.label15.Location = new System.Drawing.Point(22, 77);
+            this.label15.Name = "label15";
+            this.label15.Size = new System.Drawing.Size(53, 12);
+            this.label15.TabIndex = 1;
+            this.label15.Text = "登记时间";
+            // 
+            // label9
+            // 
+            this.label9.AutoSize = true;
+            this.label9.ForeColor = System.Drawing.Color.Blue;
+            this.label9.Location = new System.Drawing.Point(352, 77);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(53, 12);
+            this.label9.TabIndex = 1;
+            this.label9.Text = "图书分类";
+            // 
+            // txtBookName
+            // 
+            this.txtBookName.Location = new System.Drawing.Point(411, 37);
+            this.txtBookName.Name = "txtBookName";
+            this.txtBookName.Size = new System.Drawing.Size(152, 21);
+            this.txtBookName.TabIndex = 2;
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label2.ForeColor = System.Drawing.Color.Blue;
+            this.label2.Location = new System.Drawing.Point(352, 40);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(53, 12);
+            this.label2.TabIndex = 1;
+            this.label2.Text = "图书名称";
+            // 
+            // txtBookId
+            // 
+            this.txtBookId.Location = new System.Drawing.Point(81, 37);
+            this.txtBookId.Name = "txtBookId";
+            this.txtBookId.ReadOnly = true;
+            this.txtBookId.Size = new System.Drawing.Size(152, 21);
+            this.txtBookId.TabIndex = 2;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label1.ForeColor = System.Drawing.Color.Blue;
+            this.label1.Location = new System.Drawing.Point(22, 40);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(53, 12);
+            this.label1.TabIndex = 1;
+            this.label1.Text = "图书编号";
+            // 
+            // groupBox2
+            // 
+            this.groupBox2.Controls.Add(this.label16);
+            this.groupBox2.Controls.Add(this.txtVersions);
+            this.groupBox2.Controls.Add(this.label14);
+            this.groupBox2.Controls.Add(this.label13);
+            this.groupBox2.Controls.Add(this.txtAddress);
+            this.groupBox2.Controls.Add(this.label12);
+            this.groupBox2.Controls.Add(this.txtBookRemark);
+            this.groupBox2.Controls.Add(this.label11);
+            this.groupBox2.Controls.Add(this.txtPrice);
+            this.groupBox2.Controls.Add(this.label10);
+            this.groupBox2.Controls.Add(this.txtLanguge);
+            this.groupBox2.Controls.Add(this.label8);
+            this.groupBox2.Controls.Add(this.txtLayout);
+            this.groupBox2.Controls.Add(this.label7);
+            this.groupBox2.Controls.Add(this.txtBookNumber);
+            this.groupBox2.Controls.Add(this.label6);
+            this.groupBox2.Controls.Add(this.txtTranslator);
+            this.groupBox2.Controls.Add(this.label5);
+            this.groupBox2.Controls.Add(this.txtAuthor);
+            this.groupBox2.Controls.Add(this.txtPinYinCode);
+            this.groupBox2.Controls.Add(this.label4);
+            this.groupBox2.Controls.Add(this.txtISBS);
+            this.groupBox2.Controls.Add(this.label3);
+            this.groupBox2.Location = new System.Drawing.Point(12, 144);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Size = new System.Drawing.Size(658, 356);
+            this.groupBox2.TabIndex = 17;
+            this.groupBox2.TabStop = false;
+            this.groupBox2.Text = "图书详细信息(可选)";
+            // 
+            // label16
+            // 
+            this.label16.AutoSize = true;
+            this.label16.Location = new System.Drawing.Point(352, 187);
+            this.label16.Name = "label16";
+            this.label16.Size = new System.Drawing.Size(53, 12);
+            this.label16.TabIndex = 15;
+            this.label16.Text = "版    本";
+            // 
+            // txtVersions
+            // 
+            this.txtVersions.Location = new System.Drawing.Point(411, 184);
+            this.txtVersions.Name = "txtVersions";
+            this.txtVersions.Size = new System.Drawing.Size(152, 21);
+            this.txtVersions.TabIndex = 22;
+            // 
+            // label14
+            // 
+            this.label14.AutoSize = true;
+            this.label14.Location = new System.Drawing.Point(571, 113);
+            this.label14.Name = "label14";
+            this.label14.Size = new System.Drawing.Size(59, 12);
+            this.label14.TabIndex = 16;
+            this.label14.Text = "(单位/¥)";
+            // 
+            // label13
+            // 
+            this.label13.AutoSize = true;
+            this.label13.Location = new System.Drawing.Point(352, 152);
+            this.label13.Name = "label13";
+            this.label13.Size = new System.Drawing.Size(53, 12);
+            this.label13.TabIndex = 17;
+            this.label13.Text = "存放位置";
+            // 
+            // txtAddress
+            // 
+            this.txtAddress.Location = new System.Drawing.Point(411, 149);
+            this.txtAddress.Name = "txtAddress";
+            this.txtAddress.Size = new System.Drawing.Size(152, 21);
+            this.txtAddress.TabIndex = 23;
+            // 
+            // label12
+            // 
+            this.label12.AutoSize = true;
+            this.label12.Location = new System.Drawing.Point(18, 227);
+            this.label12.Name = "label12";
+            this.label12.Size = new System.Drawing.Size(53, 12);
+            this.label12.TabIndex = 14;
+            this.label12.Text = "内容描述";
+            // 
+            // txtBookRemark
+            // 
+            this.txtBookRemark.Location = new System.Drawing.Point(77, 227);
+            this.txtBookRemark.Multiline = true;
+            this.txtBookRemark.Name = "txtBookRemark";
+            this.txtBookRemark.Size = new System.Drawing.Size(486, 106);
+            this.txtBookRemark.TabIndex = 28;
+            // 
+            // label11
+            // 
+            this.label11.AutoSize = true;
+            this.label11.Location = new System.Drawing.Point(352, 113);
+            this.label11.Name = "label11";
+            this.label11.Size = new System.Drawing.Size(53, 12);
+            this.label11.TabIndex = 13;
+            this.label11.Text = "图书价格";
+            // 
+            // txtPrice
+            // 
+            this.txtPrice.Location = new System.Drawing.Point(411, 110);
+            this.txtPrice.Name = "txtPrice";
+            this.txtPrice.Size = new System.Drawing.Size(152, 21);
+            this.txtPrice.TabIndex = 19;
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.Location = new System.Drawing.Point(352, 72);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(53, 12);
+            this.label10.TabIndex = 8;
+            this.label10.Text = "语    言";
+            // 
+            // txtLanguge
+            // 
+            this.txtLanguge.Location = new System.Drawing.Point(411, 69);
+            this.txtLanguge.Name = "txtLanguge";
+            this.txtLanguge.Size = new System.Drawing.Size(152, 21);
+            this.txtLanguge.TabIndex = 25;
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Location = new System.Drawing.Point(18, 152);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(53, 12);
+            this.label8.TabIndex = 7;
+            this.label8.Text = "印刷版面";
+            // 
+            // txtLayout
+            // 
+            this.txtLayout.Location = new System.Drawing.Point(77, 149);
+            this.txtLayout.Name = "txtLayout";
+            this.txtLayout.Size = new System.Drawing.Size(152, 21);
+            this.txtLayout.TabIndex = 24;
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(18, 113);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(53, 12);
+            this.label7.TabIndex = 6;
+            this.label7.Text = "页    数";
+            // 
+            // txtBookNumber
+            // 
+            this.txtBookNumber.Location = new System.Drawing.Point(77, 110);
+            this.txtBookNumber.Name = "txtBookNumber";
+            this.txtBookNumber.Size = new System.Drawing.Size(152, 21);
+            this.txtBookNumber.TabIndex = 27;
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(18, 72);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(53, 12);
+            this.label6.TabIndex = 9;
+            this.label6.Text = "翻 译 者";
+            // 
+            // txtTranslator
+            // 
+            this.txtTranslator.Location = new System.Drawing.Point(77, 69);
+            this.txtTranslator.Name = "txtTranslator";
+            this.txtTranslator.Size = new System.Drawing.Size(152, 21);
+            this.txtTranslator.TabIndex = 26;
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(18, 34);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(53, 12);
+            this.label5.TabIndex = 12;
+            this.label5.Text = "作    者";
+            // 
+            // txtAuthor
+            // 
+            this.txtAuthor.Location = new System.Drawing.Point(77, 31);
+            this.txtAuthor.Name = "txtAuthor";
+            this.txtAuthor.Size = new System.Drawing.Size(152, 21);
+            this.txtAuthor.TabIndex = 18;
+            // 
+            // txtPinYinCode
+            // 
+            this.txtPinYinCode.Location = new System.Drawing.Point(411, 31);
+            this.txtPinYinCode.Name = "txtPinYinCode";
+            this.txtPinYinCode.Size = new System.Drawing.Size(152, 21);
+            this.txtPinYinCode.TabIndex = 20;
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(352, 34);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(53, 12);
+            this.label4.TabIndex = 11;
+            this.label4.Text = "拼 音 码";
+            // 
+            // txtISBS
+            // 
+            this.txtISBS.Location = new System.Drawing.Point(77, 184);
+            this.txtISBS.Name = "txtISBS";
+            this.txtISBS.Size = new System.Drawing.Size(152, 21);
+            this.txtISBS.TabIndex = 21;
+            // 
+            // label3
+            // 
+            this.label3.AutoSize = true;
+            this.label3.Location = new System.Drawing.Point(18, 187);
+            this.label3.Name = "label3";
+            this.label3.Size = new System.Drawing.Size(53, 12);
+            this.label3.TabIndex = 10;
+            this.label3.Text = "ISBS  码";
+            // 
+            // btnSave
+            // 
+            this.btnSave.Location = new System.Drawing.Point(390, 522);
+            this.btnSave.Name = "btnSave";
+            this.btnSave.Size = new System.Drawing.Size(75, 23);
+            this.btnSave.TabIndex = 15;
+            this.btnSave.Text = "保存";
+            this.btnSave.UseVisualStyleBackColor = true;
+            this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
+            // 
+            // button4
+            // 
+            this.button4.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button4.BackgroundImage")));
+            this.button4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.button4.ForeColor = System.Drawing.SystemColors.Control;
+            this.button4.Location = new System.Drawing.Point(573, 74);
+            this.button4.Name = "button4";
+            this.button4.Size = new System.Drawing.Size(36, 23);
+            this.button4.TabIndex = 7;
+            this.button4.UseVisualStyleBackColor = true;
+            this.button4.Click += new System.EventHandler(this.button4_Click);
+            // 
+            // BookInfoExit_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(682, 559);
+            this.Controls.Add(this.button2);
+            this.Controls.Add(this.groupBox1);
+            this.Controls.Add(this.groupBox2);
+            this.Controls.Add(this.btnSave);
+            this.Name = "BookInfoExit_UI";
+            this.Text = "编辑图书信息";
+            this.Load += new System.EventHandler(this.BookInfoExit_UI_Load);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.groupBox2.ResumeLayout(false);
+            this.groupBox2.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button button2;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.ComboBox cboBookTypeId;
+        private System.Windows.Forms.Button button4;
+        private System.Windows.Forms.DateTimePicker TimeIn;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.TextBox txtBookName;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.TextBox txtBookId;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.Label label16;
+        private System.Windows.Forms.TextBox txtVersions;
+        private System.Windows.Forms.Label label14;
+        private System.Windows.Forms.Label label13;
+        private System.Windows.Forms.TextBox txtAddress;
+        private System.Windows.Forms.Label label12;
+        private System.Windows.Forms.TextBox txtBookRemark;
+        private System.Windows.Forms.Label label11;
+        private System.Windows.Forms.TextBox txtPrice;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.TextBox txtLanguge;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.TextBox txtLayout;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.TextBox txtBookNumber;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.TextBox txtTranslator;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.TextBox txtAuthor;
+        private System.Windows.Forms.TextBox txtPinYinCode;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.TextBox txtISBS;
+        private System.Windows.Forms.Label label3;
+        private System.Windows.Forms.Button btnSave;
+    }
+}

+ 121 - 0
LibraryManager/Web/Views/BookInfoExit_UI.cs

@@ -0,0 +1,121 @@
+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 DAL;
+using Model;
+using Common;
+using BLL;
+
+
+namespace Web
+{
+    public partial class BookInfoExit_UI : Form
+    {
+        public BookInfoExit_UI()
+        {
+            InitializeComponent();
+        }
+        public string BookId = null;
+        public BookInfoManager_UI manager = null;
+        Com com = new Com();
+
+        private void button3_MouseEnter(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Standard;
+        }
+
+        private void button3_MouseLeave(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Flat;
+        }
+        BookInfo_BLL bookInfo = new BookInfo_BLL();
+        BookType_BLL bookType = new BookType_BLL();
+
+        public void BookInfoExit_UI_Load(object sender, EventArgs e)
+        {
+            this.cboBookTypeId.DataSource = bookType.selectBookType();
+            this.cboBookTypeId.DisplayMember = "BookTypeName";
+            this.cboBookTypeId.ValueMember = "BookTypeId";
+
+            List<BookInfo> list = bookInfo.selectBookInfo(this.BookId);
+            txtBookId.Text = list[0].BookId;
+            txtBookName.Text = list[0].BookName;
+            TimeIn.Value = list[0].TimeIn;
+            cboBookTypeId.SelectedValue = list[0].BookTypeId;
+            txtAuthor.Text = list[0].Author;
+            txtPinYinCode.Text = list[0].PinYinCode;
+            txtTranslator.Text = list[0].Translator;
+            txtLanguge.Text = list[0].Language;
+            txtBookNumber.Text = list[0].BookNumber;
+            txtPrice.Text = list[0].Price;
+            txtLayout.Text = list[0].Layout;
+            txtAddress.Text = list[0].Address;
+            txtISBS.Text = list[0].ISBS;
+            txtVersions.Text = list[0].Versions;
+            txtBookRemark.Text = list[0].BookRemark;
+        }
+        /// <summary>
+        /// 添加图书分类
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void button4_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "图书类型";
+            a.bookInfoExit = this;
+            a.Manager = this.manager;
+            a.ShowDialog();
+        }
+        /// <summary>
+        /// 保存修改信息
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void btnSave_Click(object sender, EventArgs e)
+        {
+            //创建添加的对象
+            BookInfo book = new BookInfo();
+            book.BookId = txtBookId.Text.Trim();
+            book.BookName = txtBookName.Text.Trim();
+            book.TimeIn = TimeIn.Value;
+            book.BookTypeId = (int)cboBookTypeId.SelectedValue;
+            book.Author = txtAuthor.Text.Trim();
+            book.PinYinCode = txtPinYinCode.Text.Trim();
+            book.Translator = txtTranslator.Text.Trim();
+            book.Language = txtLanguge.Text.Trim();
+            book.BookNumber = txtBookNumber.Text.Trim();
+            book.Price = txtPrice.Text.Trim();
+            book.Layout = txtLayout.Text.Trim();
+            book.Address = txtAddress.Text.Trim();
+            book.ISBS = txtISBS.Text.Trim();
+            book.Versions = txtVersions.Text.Trim();
+            book.BookRemark = txtBookRemark.Text.Trim();
+
+            if (bookInfo.ExitBookInfo(book) > 0)
+            {
+                MessageBox.Show("修改信息成功!");
+                //单击查询
+                manager.btnSelect_Click(null, null);
+
+                //自动找到刚刚修改成功的行,并选中
+                com.AutoFindRow(txtBookId.Text.Trim(), this.manager.dataGridView1);
+            }
+            else
+            {
+                MessageBox.Show("修改信息失败!");
+            }
+        }
+
+        private void button2_Click(object sender, EventArgs e)
+        {
+            this.Close();
+        }
+    }
+}

+ 434 - 0
LibraryManager/Web/Views/BookInfoExit_UI.resx

@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="button4.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        pYxXAAAAAElFTkSuQmCC
+</value>
+  </data>
+</root>

+ 318 - 0
LibraryManager/Web/Views/BookInfoManager_UI.Designer.cs

@@ -0,0 +1,318 @@
+namespace Web
+{
+    partial class BookInfoManager_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
+            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+            this.treeView1 = new System.Windows.Forms.TreeView();
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.button3 = new System.Windows.Forms.Button();
+            this.btnAddBookInfo = new System.Windows.Forms.Button();
+            this.btnSelect = new System.Windows.Forms.Button();
+            this.textBox1 = new System.Windows.Forms.TextBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.comboBox1 = new System.Windows.Forms.ComboBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.panel2 = new System.Windows.Forms.Panel();
+            this.tabControl1 = new System.Windows.Forms.TabControl();
+            this.历史借阅记录 = new System.Windows.Forms.TabPage();
+            this.dgvHostory = new System.Windows.Forms.DataGridView();
+            this.dataGridView1 = new System.Windows.Forms.DataGridView();
+            this.tableLayoutPanel1.SuspendLayout();
+            this.panel1.SuspendLayout();
+            this.panel2.SuspendLayout();
+            this.tabControl1.SuspendLayout();
+            this.历史借阅记录.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvHostory)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // tableLayoutPanel1
+            // 
+            this.tableLayoutPanel1.ColumnCount = 2;
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.75581F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 89.24419F));
+            this.tableLayoutPanel1.Controls.Add(this.treeView1, 0, 1);
+            this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0);
+            this.tableLayoutPanel1.Controls.Add(this.panel2, 1, 1);
+            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+            this.tableLayoutPanel1.RowCount = 2;
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.84813F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 89.15187F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+            this.tableLayoutPanel1.Size = new System.Drawing.Size(1033, 629);
+            this.tableLayoutPanel1.TabIndex = 1;
+            // 
+            // treeView1
+            // 
+            this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.treeView1.Location = new System.Drawing.Point(3, 71);
+            this.treeView1.Name = "treeView1";
+            this.treeView1.Size = new System.Drawing.Size(105, 555);
+            this.treeView1.TabIndex = 0;
+            this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect_1);
+            // 
+            // panel1
+            // 
+            this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
+            this.panel1.Controls.Add(this.button3);
+            this.panel1.Controls.Add(this.btnAddBookInfo);
+            this.panel1.Controls.Add(this.btnSelect);
+            this.panel1.Controls.Add(this.textBox1);
+            this.panel1.Controls.Add(this.label2);
+            this.panel1.Controls.Add(this.comboBox1);
+            this.panel1.Controls.Add(this.label1);
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel1.Location = new System.Drawing.Point(3, 3);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(1027, 62);
+            this.panel1.TabIndex = 1;
+            // 
+            // button3
+            // 
+            this.button3.Location = new System.Drawing.Point(826, 21);
+            this.button3.Name = "button3";
+            this.button3.Size = new System.Drawing.Size(125, 23);
+            this.button3.TabIndex = 5;
+            this.button3.Text = "更改表中显示的列";
+            this.button3.UseVisualStyleBackColor = true;
+            this.button3.Click += new System.EventHandler(this.button3_Click);
+            // 
+            // btnAddBookInfo
+            // 
+            this.btnAddBookInfo.Location = new System.Drawing.Point(723, 21);
+            this.btnAddBookInfo.Name = "btnAddBookInfo";
+            this.btnAddBookInfo.Size = new System.Drawing.Size(86, 23);
+            this.btnAddBookInfo.TabIndex = 4;
+            this.btnAddBookInfo.Text = "新增图书";
+            this.btnAddBookInfo.UseVisualStyleBackColor = true;
+            this.btnAddBookInfo.Click += new System.EventHandler(this.btnAddBookInfo_Click);
+            // 
+            // btnSelect
+            // 
+            this.btnSelect.Location = new System.Drawing.Point(442, 20);
+            this.btnSelect.Name = "btnSelect";
+            this.btnSelect.Size = new System.Drawing.Size(75, 23);
+            this.btnSelect.TabIndex = 4;
+            this.btnSelect.Text = "查询";
+            this.btnSelect.UseVisualStyleBackColor = true;
+            this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
+            // 
+            // textBox1
+            // 
+            this.textBox1.Location = new System.Drawing.Point(283, 22);
+            this.textBox1.Name = "textBox1";
+            this.textBox1.Size = new System.Drawing.Size(128, 21);
+            this.textBox1.TabIndex = 3;
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(236, 25);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(41, 12);
+            this.label2.TabIndex = 2;
+            this.label2.Text = "关键字";
+            // 
+            // comboBox1
+            // 
+            this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.comboBox1.FormattingEnabled = true;
+            this.comboBox1.Location = new System.Drawing.Point(80, 22);
+            this.comboBox1.Name = "comboBox1";
+            this.comboBox1.Size = new System.Drawing.Size(121, 20);
+            this.comboBox1.TabIndex = 1;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(21, 25);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(53, 12);
+            this.label1.TabIndex = 0;
+            this.label1.Text = "搜索字段";
+            // 
+            // panel2
+            // 
+            this.panel2.Controls.Add(this.tabControl1);
+            this.panel2.Controls.Add(this.dataGridView1);
+            this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel2.Location = new System.Drawing.Point(114, 71);
+            this.panel2.Name = "panel2";
+            this.panel2.Size = new System.Drawing.Size(916, 555);
+            this.panel2.TabIndex = 2;
+            // 
+            // tabControl1
+            // 
+            this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.tabControl1.Controls.Add(this.历史借阅记录);
+            this.tabControl1.HotTrack = true;
+            this.tabControl1.Location = new System.Drawing.Point(0, 284);
+            this.tabControl1.Name = "tabControl1";
+            this.tabControl1.SelectedIndex = 0;
+            this.tabControl1.Size = new System.Drawing.Size(917, 271);
+            this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
+            this.tabControl1.TabIndex = 4;
+            // 
+            // 历史借阅记录
+            // 
+            this.历史借阅记录.Controls.Add(this.dgvHostory);
+            this.历史借阅记录.Location = new System.Drawing.Point(4, 22);
+            this.历史借阅记录.Name = "历史借阅记录";
+            this.历史借阅记录.Padding = new System.Windows.Forms.Padding(3);
+            this.历史借阅记录.Size = new System.Drawing.Size(909, 245);
+            this.历史借阅记录.TabIndex = 0;
+            this.历史借阅记录.Text = "历史借阅记录";
+            this.历史借阅记录.UseVisualStyleBackColor = true;
+            // 
+            // dgvHostory
+            // 
+            this.dgvHostory.AllowUserToAddRows = false;
+            this.dgvHostory.AllowUserToDeleteRows = false;
+            this.dgvHostory.AllowUserToResizeColumns = false;
+            this.dgvHostory.AllowUserToResizeRows = false;
+            this.dgvHostory.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
+            this.dgvHostory.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
+            this.dgvHostory.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
+            dataGridViewCellStyle1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
+            dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.GradientActiveCaption;
+            dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+            this.dgvHostory.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
+            this.dgvHostory.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
+            dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.GradientActiveCaption;
+            dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dgvHostory.DefaultCellStyle = dataGridViewCellStyle2;
+            this.dgvHostory.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.dgvHostory.Location = new System.Drawing.Point(3, 3);
+            this.dgvHostory.Name = "dgvHostory";
+            this.dgvHostory.RowTemplate.Height = 23;
+            this.dgvHostory.Size = new System.Drawing.Size(903, 239);
+            this.dgvHostory.TabIndex = 5;
+            // 
+            // dataGridView1
+            // 
+            this.dataGridView1.AllowUserToAddRows = false;
+            this.dataGridView1.AllowUserToDeleteRows = false;
+            this.dataGridView1.AllowUserToResizeColumns = false;
+            this.dataGridView1.AllowUserToResizeRows = false;
+            this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
+            this.dataGridView1.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
+            this.dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            this.dataGridView1.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.Raised;
+            dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.ButtonFace;
+            dataGridViewCellStyle3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.ControlDark;
+            dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+            this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3;
+            this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window;
+            dataGridViewCellStyle4.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle4;
+            this.dataGridView1.Location = new System.Drawing.Point(0, 0);
+            this.dataGridView1.Name = "dataGridView1";
+            dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.TopLeft;
+            dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.ButtonFace;
+            dataGridViewCellStyle5.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.ControlDark;
+            this.dataGridView1.RowHeadersDefaultCellStyle = dataGridViewCellStyle5;
+            dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+            this.dataGridView1.RowsDefaultCellStyle = dataGridViewCellStyle6;
+            this.dataGridView1.RowTemplate.Height = 23;
+            this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
+            this.dataGridView1.Size = new System.Drawing.Size(916, 280);
+            this.dataGridView1.TabIndex = 3;
+            this.dataGridView1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellContentClick);
+            this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
+            // 
+            // BookInfoManager_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(1033, 629);
+            this.Controls.Add(this.tableLayoutPanel1);
+            this.Name = "BookInfoManager_UI";
+            this.Text = "图书管理";
+            this.Load += new System.EventHandler(this.BookInfoManager_UI_Load);
+            this.tableLayoutPanel1.ResumeLayout(false);
+            this.panel1.ResumeLayout(false);
+            this.panel1.PerformLayout();
+            this.panel2.ResumeLayout(false);
+            this.tabControl1.ResumeLayout(false);
+            this.历史借阅记录.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.dgvHostory)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+        public System.Windows.Forms.TreeView treeView1;
+        private System.Windows.Forms.Panel panel1;
+        private System.Windows.Forms.Button button3;
+        public System.Windows.Forms.Button btnAddBookInfo;
+        public System.Windows.Forms.Button btnSelect;
+        private System.Windows.Forms.TextBox textBox1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.ComboBox comboBox1;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Panel panel2;
+        private System.Windows.Forms.TabControl tabControl1;
+        private System.Windows.Forms.TabPage 历史借阅记录;
+        public System.Windows.Forms.DataGridView dgvHostory;
+        public System.Windows.Forms.DataGridView dataGridView1;
+    }
+}

+ 251 - 0
LibraryManager/Web/Views/BookInfoManager_UI.cs

@@ -0,0 +1,251 @@
+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 BLL;
+using Common;
+using Model;
+using System.Reflection;
+using System.Data.SqlClient;
+
+namespace Web
+{
+    public partial class BookInfoManager_UI : Form
+    {
+        public BookInfoManager_UI()
+        {
+            InitializeComponent();
+        }
+        public BookInfo_BLL bookInfo_bll = new BookInfo_BLL();
+        BookType_BLL bookType_bll = new BookType_BLL();
+        Com autocoumns = new Com();
+        public BorrowReturn_BLL borrowReturn_bll = new BorrowReturn_BLL();
+
+        //树绑定
+        public void TreeViewBand()
+        {
+            //图书类型的集合
+            List<BookType> list1 = bookType_bll.selectBookType();
+            TreeNode nod = new TreeNode();
+            nod.Text = "图书类型";
+            nod.ImageIndex = 0;
+            treeView1.Nodes.Add(nod);
+
+            foreach (BookType k in list1)
+            {
+                TreeNode node = new TreeNode();
+                node.Text = k.BookTypeName;
+                node.Tag = k.BookTypeId;
+                node.ImageIndex = 0;
+                nod.Nodes.Add(node);
+            }
+
+            treeView1.ExpandAll();
+        }
+
+        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
+        }
+        /// <summary>
+        /// 树控件更改选定内容的事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void treeView1_AfterSelect_1(object sender, TreeViewEventArgs e)
+        {
+            if (treeView1.SelectedNode.Level == 0)
+            {
+                dataGridView1.DataSource = bookInfo_bll.selectBookInfo1().Tables[0];
+            }
+            else if (treeView1.SelectedNode.Level == 1)
+            {
+                int index = (int)treeView1.SelectedNode.Tag;
+                dataGridView1.DataSource = bookInfo_bll.selectBookInfo1(index).Tables[0];
+            }
+            //如果读者信息表中查不到一条数据,相关表的数据也清空
+            if (dataGridView1.Rows.Count == 0)
+            {
+                dgvHostory.DataSource = null;
+                return;
+            }
+        }
+
+        /// <summary>
+        /// 当编辑绑定完 DataGridView所有单元格之后,执行绘制引发的事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
+        {
+            System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(e.RowBounds.Location.X,
+               e.RowBounds.Location.Y,
+               dataGridView1.RowHeadersWidth - 4,
+               e.RowBounds.Height);
+
+            TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
+                dataGridView1.RowHeadersDefaultCellStyle.Font,
+                rectangle,
+                dataGridView1.RowHeadersDefaultCellStyle.ForeColor,
+                TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
+        }
+
+        private void button3_Click(object sender, EventArgs e)
+        {
+            BookInfoExitRows_UI b = new BookInfoExitRows_UI();
+            b.Book = this;
+            b.ShowDialog();
+        }
+        public string BookId = "";
+
+        /// <summary>
+        /// 单击DataGridView单元格事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            try
+            {
+                //选中行的图书编号
+                BookId = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
+
+            }
+            catch (Exception) { }
+
+            //单击某行 历史记录表就显示相关的数据
+            this.dgvHostory.DataSource = borrowReturn_bll.selectBorrowReturn(BookId).Tables[0];
+
+
+            //DataGridView的总列数
+            int rows = dataGridView1.Columns.Count;
+
+            if (e.ColumnIndex == rows - 2)//修改
+            {
+                BookInfoExit_UI b = new BookInfoExit_UI();
+                b.manager = this;
+                b.BookId = BookId;
+                b.ShowDialog();
+            }
+            else if (e.ColumnIndex == rows - 1)//删除
+            {
+                DialogResult result = MessageBox.Show("确定删除吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+                if (result == DialogResult.OK)
+                {
+                    if (bookInfo_bll.DeleteBookInfo(BookId) > 0)
+                    {
+                        //调用查询按钮刷新图书信息表
+                        btnSelect_Click(null, null);
+                        //历史记录表中的数据引用着图书信息表的数据,删除图书信息应该刷新历史记录表
+                        this.dgvHostory.DataSource = borrowReturn_bll.selectBorrowReturn(BookId).Tables[0];
+                    }
+                    else
+                    {
+                        MessageBox.Show("删除失败!");
+                    }
+                }
+            }
+        }
+        /// <summary>
+        /// 点击查询按钮
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        public void btnSelect_Click(object sender, EventArgs e)
+        {
+            DataGridViewColumnCollection columns = dataGridView1.Columns;
+            if (comboBox1.SelectedIndex == 0)//全部
+            {
+                List<string> list = new List<string>();
+                for (int i = 0; i < columns.Count - 2; i++)
+                {
+                    list.Add(columns[i].DataPropertyName);
+                }
+                string B = textBox1.Text.Trim();
+                dataGridView1.DataSource = bookInfo_bll.selectBookInfo1(list, B).Tables[0];
+            }
+            else
+            {
+
+                for (int i = 0; i < columns.Count - 2; i++)
+                {
+                    if (comboBox1.SelectedItem.ToString() == columns[i].HeaderText)
+                    {
+                        string A = columns[i].DataPropertyName;
+                        string B = textBox1.Text.Trim();
+                        dataGridView1.DataSource = bookInfo_bll.selectBookInfo1(A, B).Tables[0];
+                        break;
+                    }
+                }
+            }
+
+            //如果读者信息表中查不到一条数据,相关表的数据也清空
+            if (dataGridView1.Rows.Count == 0)
+            {
+                dgvHostory.DataSource = null;
+                return;
+            }
+        }
+        public BookInfoAdd_UI bookInfoAdd;
+        public void btnAddBookInfo_Click(object sender, EventArgs e)
+        {
+            bookInfoAdd = new BookInfoAdd_UI();
+            bookInfoAdd.manager = this;
+            bookInfoAdd.ShowDialog();
+        }
+    }
+}

+ 120 - 0
LibraryManager/Web/Views/BookInfoManager_UI.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 320 - 0
LibraryManager/Web/Views/BorrowHostory_UI.Designer.cs

@@ -0,0 +1,320 @@
+namespace Web
+{
+    partial class BorrowHostory_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BorrowHostory_UI));
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle();
+            this.cboBorrowTimeType = new System.Windows.Forms.ComboBox();
+            this.btnSelect = new System.Windows.Forms.Button();
+            this.label2 = new System.Windows.Forms.Label();
+            this.splitContainer1 = new System.Windows.Forms.SplitContainer();
+            this.txtReaderId = new System.Windows.Forms.TextBox();
+            this.btnBookId = new System.Windows.Forms.Button();
+            this.checkTime = new System.Windows.Forms.CheckBox();
+            this.txtBookId = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.dtOut = new System.Windows.Forms.DateTimePicker();
+            this.btnReaderId = new System.Windows.Forms.Button();
+            this.label4 = new System.Windows.Forms.Label();
+            this.dtIn = new System.Windows.Forms.DateTimePicker();
+            this.dgvHostory = new System.Windows.Forms.DataGridView();
+            this.rdoAll = new System.Windows.Forms.RadioButton();
+            this.rdoBorrow = new System.Windows.Forms.RadioButton();
+            this.rdoReturn = new System.Windows.Forms.RadioButton();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
+            this.splitContainer1.Panel1.SuspendLayout();
+            this.splitContainer1.Panel2.SuspendLayout();
+            this.splitContainer1.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvHostory)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // cboBorrowTimeType
+            // 
+            this.cboBorrowTimeType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboBorrowTimeType.FormattingEnabled = true;
+            this.cboBorrowTimeType.Items.AddRange(new object[] {
+            "日期",
+            "借书日期",
+            "应还书日期",
+            "实际还书日期"});
+            this.cboBorrowTimeType.Location = new System.Drawing.Point(532, 12);
+            this.cboBorrowTimeType.Name = "cboBorrowTimeType";
+            this.cboBorrowTimeType.Size = new System.Drawing.Size(110, 20);
+            this.cboBorrowTimeType.TabIndex = 45;
+            // 
+            // btnSelect
+            // 
+            this.btnSelect.Location = new System.Drawing.Point(1006, 11);
+            this.btnSelect.Name = "btnSelect";
+            this.btnSelect.Size = new System.Drawing.Size(75, 23);
+            this.btnSelect.TabIndex = 44;
+            this.btnSelect.Text = "查询";
+            this.btnSelect.UseVisualStyleBackColor = true;
+            this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(259, 15);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(53, 12);
+            this.label2.TabIndex = 30;
+            this.label2.Text = "图书编号";
+            // 
+            // splitContainer1
+            // 
+            this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.splitContainer1.IsSplitterFixed = true;
+            this.splitContainer1.Location = new System.Drawing.Point(0, 0);
+            this.splitContainer1.Name = "splitContainer1";
+            this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
+            // 
+            // splitContainer1.Panel1
+            // 
+            this.splitContainer1.Panel1.Controls.Add(this.cboBorrowTimeType);
+            this.splitContainer1.Panel1.Controls.Add(this.btnSelect);
+            this.splitContainer1.Panel1.Controls.Add(this.txtReaderId);
+            this.splitContainer1.Panel1.Controls.Add(this.btnBookId);
+            this.splitContainer1.Panel1.Controls.Add(this.checkTime);
+            this.splitContainer1.Panel1.Controls.Add(this.txtBookId);
+            this.splitContainer1.Panel1.Controls.Add(this.label1);
+            this.splitContainer1.Panel1.Controls.Add(this.label2);
+            this.splitContainer1.Panel1.Controls.Add(this.dtOut);
+            this.splitContainer1.Panel1.Controls.Add(this.btnReaderId);
+            this.splitContainer1.Panel1.Controls.Add(this.label4);
+            this.splitContainer1.Panel1.Controls.Add(this.dtIn);
+            // 
+            // splitContainer1.Panel2
+            // 
+            this.splitContainer1.Panel2.Controls.Add(this.dgvHostory);
+            this.splitContainer1.Panel2.Controls.Add(this.rdoAll);
+            this.splitContainer1.Panel2.Controls.Add(this.rdoBorrow);
+            this.splitContainer1.Panel2.Controls.Add(this.rdoReturn);
+            this.splitContainer1.Size = new System.Drawing.Size(1232, 641);
+            this.splitContainer1.SplitterDistance = 42;
+            this.splitContainer1.TabIndex = 3;
+            // 
+            // txtReaderId
+            // 
+            this.txtReaderId.Location = new System.Drawing.Point(68, 12);
+            this.txtReaderId.Name = "txtReaderId";
+            this.txtReaderId.Size = new System.Drawing.Size(141, 21);
+            this.txtReaderId.TabIndex = 32;
+            // 
+            // btnBookId
+            // 
+            this.btnBookId.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnBookId.BackgroundImage")));
+            this.btnBookId.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.btnBookId.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnBookId.ForeColor = System.Drawing.SystemColors.Control;
+            this.btnBookId.Location = new System.Drawing.Point(456, 10);
+            this.btnBookId.Name = "btnBookId";
+            this.btnBookId.Size = new System.Drawing.Size(42, 23);
+            this.btnBookId.TabIndex = 34;
+            this.btnBookId.UseVisualStyleBackColor = true;
+            this.btnBookId.Click += new System.EventHandler(this.btnBookId_Click);
+            // 
+            // checkTime
+            // 
+            this.checkTime.AutoSize = true;
+            this.checkTime.Checked = true;
+            this.checkTime.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.checkTime.Location = new System.Drawing.Point(962, 16);
+            this.checkTime.Name = "checkTime";
+            this.checkTime.Size = new System.Drawing.Size(15, 14);
+            this.checkTime.TabIndex = 42;
+            this.checkTime.UseVisualStyleBackColor = true;
+            this.checkTime.CheckedChanged += new System.EventHandler(this.checkTime_CheckedChanged);
+            // 
+            // txtBookId
+            // 
+            this.txtBookId.Location = new System.Drawing.Point(312, 12);
+            this.txtBookId.Name = "txtBookId";
+            this.txtBookId.Size = new System.Drawing.Size(141, 21);
+            this.txtBookId.TabIndex = 32;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(15, 15);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(53, 12);
+            this.label1.TabIndex = 31;
+            this.label1.Text = "读者编号";
+            // 
+            // dtOut
+            // 
+            this.dtOut.Location = new System.Drawing.Point(815, 12);
+            this.dtOut.Name = "dtOut";
+            this.dtOut.Size = new System.Drawing.Size(141, 21);
+            this.dtOut.TabIndex = 40;
+            // 
+            // btnReaderId
+            // 
+            this.btnReaderId.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnReaderId.BackgroundImage")));
+            this.btnReaderId.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.btnReaderId.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnReaderId.ForeColor = System.Drawing.SystemColors.Control;
+            this.btnReaderId.Location = new System.Drawing.Point(210, 10);
+            this.btnReaderId.Name = "btnReaderId";
+            this.btnReaderId.Size = new System.Drawing.Size(42, 23);
+            this.btnReaderId.TabIndex = 35;
+            this.btnReaderId.UseVisualStyleBackColor = true;
+            this.btnReaderId.Click += new System.EventHandler(this.btnReaderId_Click);
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(792, 18);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(17, 12);
+            this.label4.TabIndex = 38;
+            this.label4.Text = "至";
+            // 
+            // dtIn
+            // 
+            this.dtIn.Location = new System.Drawing.Point(648, 12);
+            this.dtIn.Name = "dtIn";
+            this.dtIn.Size = new System.Drawing.Size(141, 21);
+            this.dtIn.TabIndex = 41;
+            // 
+            // dgvHostory
+            // 
+            this.dgvHostory.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.dgvHostory.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
+            this.dgvHostory.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Control;
+            dataGridViewCellStyle4.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.WindowText;
+            dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+            this.dgvHostory.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle4;
+            this.dgvHostory.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window;
+            dataGridViewCellStyle5.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.ControlText;
+            dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+            this.dgvHostory.DefaultCellStyle = dataGridViewCellStyle5;
+            this.dgvHostory.Location = new System.Drawing.Point(3, 16);
+            this.dgvHostory.Name = "dgvHostory";
+            dataGridViewCellStyle6.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+            dataGridViewCellStyle6.BackColor = System.Drawing.SystemColors.Control;
+            dataGridViewCellStyle6.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            dataGridViewCellStyle6.ForeColor = System.Drawing.SystemColors.WindowText;
+            dataGridViewCellStyle6.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+            dataGridViewCellStyle6.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+            dataGridViewCellStyle6.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+            this.dgvHostory.RowHeadersDefaultCellStyle = dataGridViewCellStyle6;
+            this.dgvHostory.RowTemplate.Height = 23;
+            this.dgvHostory.Size = new System.Drawing.Size(1226, 576);
+            this.dgvHostory.TabIndex = 3;
+            this.dgvHostory.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dgvHostory_RowPostPaint);
+            // 
+            // rdoAll
+            // 
+            this.rdoAll.AutoSize = true;
+            this.rdoAll.Checked = true;
+            this.rdoAll.Location = new System.Drawing.Point(15, 1);
+            this.rdoAll.Name = "rdoAll";
+            this.rdoAll.Size = new System.Drawing.Size(47, 16);
+            this.rdoAll.TabIndex = 43;
+            this.rdoAll.TabStop = true;
+            this.rdoAll.Text = "全部";
+            this.rdoAll.UseVisualStyleBackColor = true;
+            // 
+            // rdoBorrow
+            // 
+            this.rdoBorrow.AutoSize = true;
+            this.rdoBorrow.Location = new System.Drawing.Point(68, 1);
+            this.rdoBorrow.Name = "rdoBorrow";
+            this.rdoBorrow.Size = new System.Drawing.Size(47, 16);
+            this.rdoBorrow.TabIndex = 43;
+            this.rdoBorrow.Text = "已借";
+            this.rdoBorrow.UseVisualStyleBackColor = true;
+            // 
+            // rdoReturn
+            // 
+            this.rdoReturn.AutoSize = true;
+            this.rdoReturn.Location = new System.Drawing.Point(122, 1);
+            this.rdoReturn.Name = "rdoReturn";
+            this.rdoReturn.Size = new System.Drawing.Size(47, 16);
+            this.rdoReturn.TabIndex = 43;
+            this.rdoReturn.Text = "已还";
+            this.rdoReturn.UseVisualStyleBackColor = true;
+            // 
+            // BorrowHostory_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(1232, 641);
+            this.Controls.Add(this.splitContainer1);
+            this.Name = "BorrowHostory_UI";
+            this.Text = "BorrowHostory_UI";
+            this.Load += new System.EventHandler(this.BorrowHostory_UI_Load);
+            this.splitContainer1.Panel1.ResumeLayout(false);
+            this.splitContainer1.Panel1.PerformLayout();
+            this.splitContainer1.Panel2.ResumeLayout(false);
+            this.splitContainer1.Panel2.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
+            this.splitContainer1.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.dgvHostory)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ComboBox cboBorrowTimeType;
+        private System.Windows.Forms.Button btnSelect;
+        private System.Windows.Forms.Button btnBookId;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.SplitContainer splitContainer1;
+        public System.Windows.Forms.TextBox txtReaderId;
+        private System.Windows.Forms.CheckBox checkTime;
+        public System.Windows.Forms.TextBox txtBookId;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.DateTimePicker dtOut;
+        private System.Windows.Forms.Button btnReaderId;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.DateTimePicker dtIn;
+        private System.Windows.Forms.DataGridView dgvHostory;
+        private System.Windows.Forms.RadioButton rdoAll;
+        private System.Windows.Forms.RadioButton rdoBorrow;
+        private System.Windows.Forms.RadioButton rdoReturn;
+    }
+}

+ 113 - 0
LibraryManager/Web/Views/BorrowHostory_UI.cs

@@ -0,0 +1,113 @@
+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 Common;
+using BLL;
+using Model;
+
+namespace Web
+{
+    public partial class BorrowHostory_UI : Form
+    {
+        public BorrowHostory_UI()
+        {
+            InitializeComponent();
+        }
+
+        private void button5_MouseEnter(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Standard;
+        }
+
+        private void button5_MouseLeave(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Flat;
+        }
+        Com com = new Com();
+        BorrowReturn_BLL borrowReturn_bll = new BorrowReturn_BLL();
+
+        private void btnReaderId_Click(object sender, EventArgs e)
+        {
+            Info_UI i = new Info_UI();
+            i.txtName = "读者信息";
+            i.BorrowHostory = this;
+            i.ShowDialog();
+        }
+
+        private void btnBookId_Click(object sender, EventArgs e)
+        {
+            Info_UI i = new Info_UI();
+            i.txtName = "图书信息";
+            i.BorrowHostory = this;
+            i.ShowDialog();
+        }
+
+        private void BorrowHostory_UI_Load(object sender, EventArgs e)
+        {
+            cboBorrowTimeType.SelectedIndex = 0;
+            #region dgvHostory列表生成
+
+            string ColumnHeaderText = "图书编号,读者编号,图书名称,读者名称,图书类型,读者类型,读者性别,身份证号,借阅时间,应还时间,实际还书时间,罚金,续借次数";
+            string ColumnHeaderName = @"BookId,ReaderId,BookName,ReaderName,BookTypeName,ReaderTypeName,Gender,IdentityCard,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount";
+            com.AutoColumn(ColumnHeaderText, ColumnHeaderName, dgvHostory);
+            dgvHostory.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+            dgvHostory.DataSource = borrowReturn_bll.AllBorrowReturn().Tables[0];
+            #endregion
+        }
+
+        //当编辑绑定完 DataGridView所有单元格之后,执行绘制引发的事件
+        private void dgvHostory_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
+        {
+            System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(e.RowBounds.Location.X,
+               e.RowBounds.Location.Y,
+               dgvHostory.RowHeadersWidth - 4,
+               e.RowBounds.Height);
+
+            TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
+                dgvHostory.RowHeadersDefaultCellStyle.Font,
+                rectangle,
+                dgvHostory.RowHeadersDefaultCellStyle.ForeColor,
+                TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
+        }
+        //CheckBox是否选中打钩 事件
+        private void checkTime_CheckedChanged(object sender, EventArgs e)
+        {
+            if (checkTime.Checked)
+            {
+                dtIn.Enabled = true;
+                dtOut.Enabled = true;
+                cboBorrowTimeType.Enabled = true;
+            }
+            else
+            {
+                dtIn.Enabled = false;
+                dtOut.Enabled = false;
+                cboBorrowTimeType.Enabled = false;
+            }
+        }
+        //单击查询
+        private void btnSelect_Click(object sender, EventArgs e)
+        {
+            BorrowReturn b = new BorrowReturn();
+            b.BookId = txtBookId.Text.Trim();
+            b.ReaderId = txtReaderId.Text.Trim();
+            b.TimeIn = dtIn.Value;
+            b.TimeOut = dtOut.Value;
+            String rdoName = rdoAll.Text;
+            if (rdoBorrow.Checked)
+                rdoName = rdoBorrow.Text;
+            else if (rdoReturn.Checked)
+                rdoName = rdoReturn.Text;
+            String cboBorrowTimeType = this.cboBorrowTimeType.SelectedItem.ToString();
+            bool checkTime = this.checkTime.Checked;
+            dgvHostory.DataSource = borrowReturn_bll.selectHostory(b, rdoName, cboBorrowTimeType, checkTime).Tables[0];
+        }
+
+    }
+}

+ 1593 - 0
LibraryManager/Web/Views/BorrowHostory_UI.resx

@@ -0,0 +1,1593 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="btnBookId.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAPAAAADcCAYAAABOOyzfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAGYktHRP///////wlY99wAAAAJdnBBZwAAAPAAAADcAC3NLgMAAKrcSURBVHhe7Z0HmFXF+YfX
+        EpMY/4lRk2hiNImJvTcUC4pix947igiIgBQVFFSqCtI7gvTeey/LLmUbW+m9CSgI2Ov9/97ZO+vs7Nzd
+        pYiY3Hme33Pv3r33nDlnvne+b+pJiKe9T2vWrEnYuXPn4b169Tq6W7duf+3UqdOVzZo1u+u9996r3rp1
+        67Zvv/326HfeeWdOq1atMvT3mnffffdjaY/0pfSt9IP0jfSFtFvf267vrdRrqn47U78d2qZNm5b637PN
+        mze/Xee4pGPHjn8aNWrUbyKRSMKePXuiOYmneIqnQumHH34opK+//joBaMaMGXNkjx49/irIygqsagLt
+        PYE2sWXLljl63aq/v5S+1fsfpIi+s8/i99L3HE/6XO836jwZ+t9IvbZQHp6SLu7bt+8J48aNO5z8ITff
+        8RRP/zPJNXy0aNGihNzc3MM7d+78J3nCcgLnZYE0QsqRdgPX/kK6r4rCDdgfS6l630+q3rZt20tVwRz7
+        7bffJixZsqTINcVTPP1XJ4WoCfJmR7Zv3/4UebcHBUdXKSMKbBCmkhSFzUjHCcr9DgodpyTpdz/oWB9J
+        8/Re2W91a5cuXf6Mdx4+fHj0CuMpnv7LktqXCQsXLkzo0KHDiWqD3ifj7yEIlkm0T4OwuLLQAaIVn8tr
+        R3TMiCCK9OzZM9KnT59Iv379IgMGDIgMGjTIiPf9+/c3/3v//fcjXbt2jagSiciTRpSXIsflb//8IUV/
+        97mULulQrSuoDf0HQuykpKTolcdTPP3Ckm0nbtq0KeGZZ55JEDy/kXFfJiNvqnblYr1+WRIkLlRA1qlT
+        p8gHH3wQUfs4MmvWrEhqampkxYoVkY0bN0a2bdsW+eSTTyKff/555Kuvvop88803RgpxjXiv9nXkyy+/
+        jHz22Wfmu9u3b49s2LAhsmzZskhaWpo55tixYw38AA7c5IPzk5dS5nePrm+uXl9SxXJmtC0fvSvxFE+/
+        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
+        RK5CYII=
+</value>
+  </data>
+  <data name="btnReaderId.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAPAAAADcCAYAAABOOyzfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAGYktHRP///////wlY99wAAAAJdnBBZwAAAPAAAADcAC3NLgMAAKrcSURBVHhe7Z0HmFXF+YfX
+        EpMY/4lRk2hiNImJvTcUC4pix947igiIgBQVFFSqCtI7gvTeey/LLmUbW+m9CSgI2Ov9/97ZO+vs7Nzd
+        pYiY3Hme33Pv3r33nDlnvne+b+pJiKe9T2vWrEnYuXPn4b169Tq6W7duf+3UqdOVzZo1u+u9996r3rp1
+        67Zvv/326HfeeWdOq1atMvT3mnffffdjaY/0pfSt9IP0jfSFtFvf267vrdRrqn47U78d2qZNm5b637PN
+        mze/Xee4pGPHjn8aNWrUbyKRSMKePXuiOYmneIqnQumHH34opK+//joBaMaMGXNkjx49/irIygqsagLt
+        PYE2sWXLljl63aq/v5S+1fsfpIi+s8/i99L3HE/6XO836jwZ+t9IvbZQHp6SLu7bt+8J48aNO5z8ITff
+        8RRP/zPJNXy0aNGihNzc3MM7d+78J3nCcgLnZYE0QsqRdgPX/kK6r4rCDdgfS6l630+q3rZt20tVwRz7
+        7bffJixZsqTINcVTPP1XJ4WoCfJmR7Zv3/4UebcHBUdXKSMKbBCmkhSFzUjHCcr9DgodpyTpdz/oWB9J
+        8/Re2W91a5cuXf6Mdx4+fHj0CuMpnv7LktqXCQsXLkzo0KHDiWqD3ifj7yEIlkm0T4OwuLLQAaIVn8tr
+        R3TMiCCK9OzZM9KnT59Iv379IgMGDIgMGjTIiPf9+/c3/3v//fcjXbt2jagSiciTRpSXIsflb//8IUV/
+        97mULulQrSuoDf0HQuykpKTolcdTPP3Ckm0nbtq0KeGZZ55JEDy/kXFfJiNvqnblYr1+WRIkLlRA1qlT
+        p8gHH3wQUfs4MmvWrEhqampkxYoVkY0bN0a2bdsW+eSTTyKff/555Kuvvop88803RgpxjXiv9nXkyy+/
+        jHz22Wfmu9u3b49s2LAhsmzZskhaWpo55tixYw38AA7c5IPzk5dS5nePrm+uXl9SxXJmtC0fvSvxFE+/
+        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
+        RK5CYII=
+</value>
+  </data>
+</root>

+ 254 - 0
LibraryManager/Web/Views/BorrowManager_UI.Designer.cs

@@ -0,0 +1,254 @@
+namespace Web
+{
+    partial class BorrowManager_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BorrowManager_UI));
+            this.dgvBookInfo = new System.Windows.Forms.DataGridView();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.dgvBorrowed = new System.Windows.Forms.DataGridView();
+            this.dgvReaderInfo = new System.Windows.Forms.DataGridView();
+            this.labBorrowBook = new System.Windows.Forms.Label();
+            this.txtReaderId = new System.Windows.Forms.TextBox();
+            this.label6 = new System.Windows.Forms.Label();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.btnClose = new System.Windows.Forms.Button();
+            this.txtBookId = new System.Windows.Forms.TextBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.btnSelctReader = new System.Windows.Forms.Button();
+            this.btnSelectBook = new System.Windows.Forms.Button();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvBookInfo)).BeginInit();
+            this.groupBox2.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvBorrowed)).BeginInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvReaderInfo)).BeginInit();
+            this.groupBox1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // dgvBookInfo
+            // 
+            this.dgvBookInfo.AllowUserToAddRows = false;
+            this.dgvBookInfo.AllowUserToDeleteRows = false;
+            this.dgvBookInfo.AllowUserToResizeColumns = false;
+            this.dgvBookInfo.AllowUserToResizeRows = false;
+            this.dgvBookInfo.BackgroundColor = System.Drawing.SystemColors.ActiveCaptionText;
+            this.dgvBookInfo.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvBookInfo.Location = new System.Drawing.Point(13, 47);
+            this.dgvBookInfo.Name = "dgvBookInfo";
+            this.dgvBookInfo.ReadOnly = true;
+            this.dgvBookInfo.RowTemplate.Height = 23;
+            this.dgvBookInfo.Size = new System.Drawing.Size(802, 168);
+            this.dgvBookInfo.TabIndex = 8;
+            this.dgvBookInfo.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvBookInfo_CellContentClick);
+            // 
+            // groupBox2
+            // 
+            this.groupBox2.Controls.Add(this.btnSelctReader);
+            this.groupBox2.Controls.Add(this.dgvBorrowed);
+            this.groupBox2.Controls.Add(this.dgvReaderInfo);
+            this.groupBox2.Controls.Add(this.labBorrowBook);
+            this.groupBox2.Controls.Add(this.txtReaderId);
+            this.groupBox2.Controls.Add(this.label6);
+            this.groupBox2.Location = new System.Drawing.Point(12, 12);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Size = new System.Drawing.Size(827, 315);
+            this.groupBox2.TabIndex = 15;
+            this.groupBox2.TabStop = false;
+            this.groupBox2.Text = "还书,续借";
+            // 
+            // dgvBorrowed
+            // 
+            this.dgvBorrowed.AllowUserToAddRows = false;
+            this.dgvBorrowed.AllowUserToDeleteRows = false;
+            this.dgvBorrowed.AllowUserToResizeColumns = false;
+            this.dgvBorrowed.AllowUserToResizeRows = false;
+            this.dgvBorrowed.BackgroundColor = System.Drawing.SystemColors.ActiveCaptionText;
+            this.dgvBorrowed.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvBorrowed.Location = new System.Drawing.Point(14, 100);
+            this.dgvBorrowed.Name = "dgvBorrowed";
+            this.dgvBorrowed.RowHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
+            this.dgvBorrowed.RowTemplate.Height = 23;
+            this.dgvBorrowed.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
+            this.dgvBorrowed.Size = new System.Drawing.Size(802, 168);
+            this.dgvBorrowed.TabIndex = 13;
+            this.dgvBorrowed.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvBorrowed_CellContentClick);
+            this.dgvBorrowed.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dgvBorrowed_RowPostPaint);
+            // 
+            // dgvReaderInfo
+            // 
+            this.dgvReaderInfo.AllowUserToAddRows = false;
+            this.dgvReaderInfo.AllowUserToDeleteRows = false;
+            this.dgvReaderInfo.AllowUserToResizeColumns = false;
+            this.dgvReaderInfo.AllowUserToResizeRows = false;
+            this.dgvReaderInfo.BackgroundColor = System.Drawing.SystemColors.ActiveCaptionText;
+            this.dgvReaderInfo.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvReaderInfo.Location = new System.Drawing.Point(13, 45);
+            this.dgvReaderInfo.Name = "dgvReaderInfo";
+            this.dgvReaderInfo.ReadOnly = true;
+            this.dgvReaderInfo.RowHeadersVisible = false;
+            dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.White;
+            dataGridViewCellStyle3.SelectionForeColor = System.Drawing.Color.Black;
+            this.dgvReaderInfo.RowsDefaultCellStyle = dataGridViewCellStyle3;
+            this.dgvReaderInfo.RowTemplate.Height = 23;
+            this.dgvReaderInfo.ScrollBars = System.Windows.Forms.ScrollBars.None;
+            this.dgvReaderInfo.Size = new System.Drawing.Size(802, 40);
+            this.dgvReaderInfo.TabIndex = 14;
+            this.dgvReaderInfo.DataSourceChanged += new System.EventHandler(this.dgvReaderInfo_DataSourceChanged);
+            // 
+            // labBorrowBook
+            // 
+            this.labBorrowBook.AutoSize = true;
+            this.labBorrowBook.Font = new System.Drawing.Font("宋体", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.labBorrowBook.ForeColor = System.Drawing.Color.OrangeRed;
+            this.labBorrowBook.Location = new System.Drawing.Point(12, 85);
+            this.labBorrowBook.Name = "labBorrowBook";
+            this.labBorrowBook.Size = new System.Drawing.Size(107, 14);
+            this.labBorrowBook.TabIndex = 10;
+            this.labBorrowBook.Text = ".....已借图书";
+            // 
+            // txtReaderId
+            // 
+            this.txtReaderId.Location = new System.Drawing.Point(71, 18);
+            this.txtReaderId.Name = "txtReaderId";
+            this.txtReaderId.Size = new System.Drawing.Size(128, 21);
+            this.txtReaderId.TabIndex = 12;
+            this.txtReaderId.TextChanged += new System.EventHandler(this.txtReaderId_TextChanged);
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(12, 21);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(53, 12);
+            this.label6.TabIndex = 11;
+            this.label6.Text = "读者编号";
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.btnClose);
+            this.groupBox1.Controls.Add(this.btnSelectBook);
+            this.groupBox1.Controls.Add(this.txtBookId);
+            this.groupBox1.Controls.Add(this.label7);
+            this.groupBox1.Controls.Add(this.dgvBookInfo);
+            this.groupBox1.Location = new System.Drawing.Point(12, 333);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(829, 265);
+            this.groupBox1.TabIndex = 14;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "借书";
+            // 
+            // btnClose
+            // 
+            this.btnClose.Location = new System.Drawing.Point(740, 226);
+            this.btnClose.Name = "btnClose";
+            this.btnClose.Size = new System.Drawing.Size(75, 23);
+            this.btnClose.TabIndex = 12;
+            this.btnClose.Text = "取消";
+            this.btnClose.UseVisualStyleBackColor = true;
+            // 
+            // txtBookId
+            // 
+            this.txtBookId.Location = new System.Drawing.Point(70, 20);
+            this.txtBookId.Name = "txtBookId";
+            this.txtBookId.Size = new System.Drawing.Size(128, 21);
+            this.txtBookId.TabIndex = 10;
+            this.txtBookId.TextChanged += new System.EventHandler(this.txtBookId_TextChanged);
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(11, 23);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(53, 12);
+            this.label7.TabIndex = 9;
+            this.label7.Text = "图书编号";
+            // 
+            // btnSelctReader
+            // 
+            this.btnSelctReader.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnSelctReader.BackgroundImage")));
+            this.btnSelctReader.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.btnSelctReader.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnSelctReader.ForeColor = System.Drawing.SystemColors.Control;
+            this.btnSelctReader.Location = new System.Drawing.Point(205, 16);
+            this.btnSelctReader.Name = "btnSelctReader";
+            this.btnSelctReader.Size = new System.Drawing.Size(42, 23);
+            this.btnSelctReader.TabIndex = 16;
+            this.btnSelctReader.UseVisualStyleBackColor = true;
+            this.btnSelctReader.Click += new System.EventHandler(this.btnSelctReader_Click);
+            // 
+            // btnSelectBook
+            // 
+            this.btnSelectBook.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnSelectBook.BackgroundImage")));
+            this.btnSelectBook.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.btnSelectBook.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnSelectBook.ForeColor = System.Drawing.SystemColors.Control;
+            this.btnSelectBook.Location = new System.Drawing.Point(205, 18);
+            this.btnSelectBook.Name = "btnSelectBook";
+            this.btnSelectBook.Size = new System.Drawing.Size(42, 23);
+            this.btnSelectBook.TabIndex = 11;
+            this.btnSelectBook.UseVisualStyleBackColor = true;
+            this.btnSelectBook.Click += new System.EventHandler(this.btnSelectBook_Click);
+            // 
+            // BorrowManager_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(857, 609);
+            this.Controls.Add(this.groupBox2);
+            this.Controls.Add(this.groupBox1);
+            this.Name = "BorrowManager_UI";
+            this.Text = "图书借阅";
+            this.Load += new System.EventHandler(this.BorrowManager_UI_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.dgvBookInfo)).EndInit();
+            this.groupBox2.ResumeLayout(false);
+            this.groupBox2.PerformLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvBorrowed)).EndInit();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvReaderInfo)).EndInit();
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.DataGridView dgvBookInfo;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.Button btnSelctReader;
+        private System.Windows.Forms.DataGridView dgvBorrowed;
+        private System.Windows.Forms.DataGridView dgvReaderInfo;
+        private System.Windows.Forms.Label labBorrowBook;
+        public System.Windows.Forms.TextBox txtReaderId;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.Button btnClose;
+        private System.Windows.Forms.Button btnSelectBook;
+        public System.Windows.Forms.TextBox txtBookId;
+        private System.Windows.Forms.Label label7;
+    }
+}

+ 276 - 0
LibraryManager/Web/Views/BorrowManager_UI.cs

@@ -0,0 +1,276 @@
+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 Common;
+using BLL;
+using Model;
+
+namespace Web
+{
+    public partial class BorrowManager_UI : Form
+    {
+        public BorrowManager_UI()
+        {
+            InitializeComponent();
+        }
+
+        private void BorrowManager_UI_Load(object sender, EventArgs e)
+        {
+            #region dgvReaderInfo自动生成列
+
+            //需要添加列的列标题字符串
+            string arraysHeaderText = @"读者编号,读者名称,登记时间,有效时间,图书类型,所在院系,所在班级,省份证号,性别,电话,手机,Email,联系地址,描述信息";
+            //需要绑定数据库列名称的字符串
+            string arraysName = @"ReaderId,ReaderName,TimeIn,TimeOut,ReaderTypeName,DepartmentName,ClassName,IdentityCard,Gender,Special,Phone,Email,Address,ReaderRemark";
+
+            //自动生成columns
+            autocoumns.AutoColumn(arraysHeaderText, arraysName, dgvReaderInfo);
+
+            //DataGridView1数据集绑定
+            //this.dgvReaderInfo.DataSource = reader_bll.selectReader().Tables[0];
+            this.dgvReaderInfo.Columns[13].Visible = false;
+            this.dgvReaderInfo.Columns[12].Visible = false;
+            this.dgvReaderInfo.Columns[11].Visible = false;
+            dgvReaderInfo.DataSource = null;
+
+            #endregion
+
+
+            #region dgvBorrow表的自动生成列
+
+            //dataGridView3.AutoGenerateColumns = false;
+            //需要添加列的列标题字符串
+            string arraysHeaderText1 = @"借还ID,读者编号,读者名称,图书编号,图书名称,借出时间,书应归还时间,实际归还时间,应付罚金,续借次数,借还描述";
+            //需要绑定数据库列名称的字符串
+            string arraysName1 = @"BorrowId,ReaderId,ReaderName,BookId,BookName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark";
+
+            //自动生成columns
+            autocoumns.AutoColumn(arraysHeaderText1, arraysName1, dgvBorrowed);
+            autocoumns.AddColumn("续借", dgvBorrowed);
+            autocoumns.AddColumn("还书", dgvBorrowed);
+
+            //dgvBorrowed.Columns[2].Frozen = true;
+            //dgvBorrowed.Columns[1].Frozen = true;
+            //自动铺满的列宽
+            dgvBorrowed.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+            dgvBorrowed.Columns[0].Visible = false;
+            dgvBorrowed.Columns[1].Visible = false;
+            dgvBorrowed.Columns[2].Visible = false;
+            dgvBorrowed.Columns[7].Visible = false;
+            dgvBorrowed.Columns[dgvBorrowed.Columns.Count - 3].Visible = false;
+            dgvBorrowed.DataSource = null;
+            #endregion
+
+
+            #region dgvBookInfo的自动生成列
+
+            //需要添加列的列标题字符串
+            string arraysHeaderText2 = @"图书编号,图书名称,登记时间,图书类型,作者,拼音码,翻译,语言,页数,价格,印刷版面,存放位置,ISBS码,版本,描述";
+            //需要绑定数据库列名称的字符串
+            string arraysName2 = @"BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark";
+
+            //自动生成columns
+            autocoumns.AutoColumn(arraysHeaderText2, arraysName2, dgvBookInfo);
+            autocoumns.AddColumn("借书", dgvBookInfo);
+
+            dgvBookInfo.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+            dgvBookInfo.DataSource = null;
+
+            dgvBookInfo.Columns[dgvBookInfo.Columns.Count - 2].Visible = false;
+            dgvBookInfo.Columns[dgvBookInfo.Columns.Count - 3].Visible = false;
+            dgvBookInfo.Columns[dgvBookInfo.Columns.Count - 4].Visible = false;
+            dgvBookInfo.Columns[dgvBookInfo.Columns.Count - 5].Visible = false;
+            dgvBookInfo.Columns[dgvBookInfo.Columns.Count - 6].Visible = false;
+            dgvBookInfo.Columns[dgvBookInfo.Columns.Count - 7].Visible = false;
+            dgvBookInfo.Columns[dgvBookInfo.Columns.Count - 8].Visible = false;
+            #endregion
+        }
+        private void button5_MouseEnter(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Standard;
+        }
+
+        private void button5_MouseLeave(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Flat;
+        }
+        Com autocoumns = new Com();
+        Reader_BLL reader_bll = new Reader_BLL();
+        BorrowReturn_BLL borrowReturn_bll = new BorrowReturn_BLL();
+        BookInfo_BLL bookInfo_bll = new BookInfo_BLL();
+
+        //读者信息与读者借还表的联动
+        private void txtReaderId_TextChanged(object sender, EventArgs e)
+        {
+            string ReaderId = txtReaderId.Text.Trim();
+            dgvReaderInfo.DataSource = reader_bll.selectReader("ReaderId", ReaderId).Tables[0];
+        }
+        //重新绑定数据是发生
+        private void dgvReaderInfo_DataSourceChanged(object sender, EventArgs e)
+        {
+            if (dgvReaderInfo.Rows.Count > 0)
+            {
+                string ReaderId = dgvReaderInfo.Rows[0].Cells[0].Value.ToString();
+                dgvBorrowed.DataSource = borrowReturn_bll.ReaderBorrowReturn(ReaderId).Tables[0];
+
+                labBorrowBook.Text = "读者编号为:" + ReaderId + " 正在借阅的以下图书";
+            }
+            else
+            {
+                dgvBorrowed.DataSource = null;
+                labBorrowBook.Text = ".....正在借阅的图书";
+            }
+        }
+        //根据图书编号改变事件
+        private void txtBookId_TextChanged(object sender, EventArgs e)
+        {
+            string BookId = txtBookId.Text.Trim();
+            dgvBookInfo.DataSource = bookInfo_bll.selectBookInfo2(BookId).Tables[0];
+        }
+
+        private void dgvBorrowed_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            int BorrowReturnId = -1;
+            try
+            {
+                //选中行的借阅编号
+                BorrowReturnId = (int)dgvBorrowed.Rows[e.RowIndex].Cells[0].Value;
+
+            }
+            catch (Exception) { }
+
+            //DataGridView的总列数
+            int rows = dgvBorrowed.Columns.Count;
+
+            if (e.ColumnIndex == rows - 2)//修改
+            {
+                DialogResult result = MessageBox.Show("确定续借吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+                if (result == DialogResult.OK)
+                {
+                    BorrowReturn b = new BorrowReturn();
+                    b.BorrowId = BorrowReturnId;
+                    if (borrowReturn_bll.RenewBook(b) > 0)
+                    {
+                        MessageBox.Show("续借成功!");
+                        dgvReaderInfo_DataSourceChanged(null, null);
+                        autocoumns.AutoFindRow(b.BorrowId, dgvBorrowed);
+                    }
+                    else
+                    {
+                        MessageBox.Show("续借失败!");
+                    }
+                }
+            }
+            else if (e.ColumnIndex == rows - 1)//还书
+            {
+                DialogResult result = MessageBox.Show("确定还书吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+                if (result == DialogResult.OK)
+                {
+                    if (borrowReturn_bll.ReturnBook(BorrowReturnId) > 0)
+                    {
+                        dgvReaderInfo_DataSourceChanged(null, null);
+                        MessageBox.Show("还书成功!");
+                        txtBookId_TextChanged(null, null);
+                    }
+                    else
+                    {
+                        MessageBox.Show("还书失败!");
+                    }
+                }
+            }
+        }
+        //借书
+        private void dgvBookInfo_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            string BookId = "";
+            try
+            {
+                //选中行的图书编号
+                BookId = dgvBookInfo.Rows[e.RowIndex].Cells[0].Value.ToString();
+
+            }
+            catch (Exception) { }
+
+            //DataGridView的总列数
+            int rows = dgvBookInfo.Columns.Count;
+
+            if (e.ColumnIndex == rows - 1)//借书
+            {
+                if (dgvReaderInfo.Rows.Count < 1)
+                {
+                    MessageBox.Show("没有读者信息!");
+                    return;
+                }
+                BorrowReturn b = new BorrowReturn();
+                b.BookId = BookId;
+                b.ReaderId = dgvReaderInfo.Rows[0].Cells[0].Value.ToString();
+                b.BorrowTime = DateTime.Now;
+                b.ReturnTime = DateTime.Now;//数据库中存储过程根据借书时间自动计算应还书日期
+                b.Fine = 0;
+                b.RenewCount = 0;
+                b.BorrowRemark = "";
+
+
+                DialogResult result = MessageBox.Show("确定借书吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+                if (result == DialogResult.OK)
+                {
+                    if (borrowReturn_bll.BorrowBook(b) == 0)
+                    {
+
+
+                        MessageBox.Show("借书成功!");
+                        //刷新图书借还表
+                        dgvReaderInfo_DataSourceChanged(null, null);
+                        //选中添加成功的新行
+                        autocoumns.AutoFindRow(b.BorrowId, dgvBorrowed);
+                        //刷新 //读者信息与读者借还表的联动
+                        txtBookId_TextChanged(null, null);
+                    }
+                    else
+                    {
+                        MessageBox.Show("借书失败!");
+                    }
+                }
+
+            }
+        }
+        //查询读者
+        private void btnSelctReader_Click(object sender, EventArgs e)
+        {
+            Info_UI i = new Info_UI();
+            i.txtName = "读者信息";
+            i.borrowManager = this;
+            i.ShowDialog();
+        }
+
+        private void btnSelectBook_Click(object sender, EventArgs e)
+        {
+            Info_UI i = new Info_UI();
+            i.txtName = "图书信息";
+            i.borrowManager = this;
+            i.ShowDialog();
+        }
+
+        private void dgvBorrowed_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
+        {
+            System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(e.RowBounds.Location.X,
+               e.RowBounds.Location.Y,
+               dgvBorrowed.RowHeadersWidth - 4,
+               e.RowBounds.Height);
+
+            TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
+                dgvBorrowed.RowHeadersDefaultCellStyle.Font,
+                rectangle,
+                dgvBorrowed.RowHeadersDefaultCellStyle.ForeColor,
+                TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
+        }
+
+
+    }
+}

+ 1593 - 0
LibraryManager/Web/Views/BorrowManager_UI.resx

@@ -0,0 +1,1593 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="btnSelctReader.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAPAAAADcCAYAAABOOyzfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAGYktHRP///////wlY99wAAAAJdnBBZwAAAPAAAADcAC3NLgMAAKrcSURBVHhe7Z0HmFXF+YfX
+        EpMY/4lRk2hiNImJvTcUC4pix947igiIgBQVFFSqCtI7gvTeey/LLmUbW+m9CSgI2Ov9/97ZO+vs7Nzd
+        pYiY3Hme33Pv3r33nDlnvne+b+pJiKe9T2vWrEnYuXPn4b169Tq6W7duf+3UqdOVzZo1u+u9996r3rp1
+        67Zvv/326HfeeWdOq1atMvT3mnffffdjaY/0pfSt9IP0jfSFtFvf267vrdRrqn47U78d2qZNm5b637PN
+        mze/Xee4pGPHjn8aNWrUbyKRSMKePXuiOYmneIqnQumHH34opK+//joBaMaMGXNkjx49/irIygqsagLt
+        PYE2sWXLljl63aq/v5S+1fsfpIi+s8/i99L3HE/6XO836jwZ+t9IvbZQHp6SLu7bt+8J48aNO5z8ITff
+        8RRP/zPJNXy0aNGihNzc3MM7d+78J3nCcgLnZYE0QsqRdgPX/kK6r4rCDdgfS6l630+q3rZt20tVwRz7
+        7bffJixZsqTINcVTPP1XJ4WoCfJmR7Zv3/4UebcHBUdXKSMKbBCmkhSFzUjHCcr9DgodpyTpdz/oWB9J
+        8/Re2W91a5cuXf6Mdx4+fHj0CuMpnv7LktqXCQsXLkzo0KHDiWqD3ifj7yEIlkm0T4OwuLLQAaIVn8tr
+        R3TMiCCK9OzZM9KnT59Iv379IgMGDIgMGjTIiPf9+/c3/3v//fcjXbt2jagSiciTRpSXIsflb//8IUV/
+        97mULulQrSuoDf0HQuykpKTolcdTPP3Ckm0nbtq0KeGZZ55JEDy/kXFfJiNvqnblYr1+WRIkLlRA1qlT
+        p8gHH3wQUfs4MmvWrEhqampkxYoVkY0bN0a2bdsW+eSTTyKff/555Kuvvop88803RgpxjXiv9nXkyy+/
+        jHz22Wfmu9u3b49s2LAhsmzZskhaWpo55tixYw38AA7c5IPzk5dS5nePrm+uXl9SxXJmtC0fvSvxFE+/
+        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
+        RK5CYII=
+</value>
+  </data>
+  <data name="btnSelectBook.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        iVBORw0KGgoAAAANSUhEUgAAAPAAAADcCAYAAABOOyzfAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+        YQUAAAAGYktHRP///////wlY99wAAAAJdnBBZwAAAPAAAADcAC3NLgMAAKrcSURBVHhe7Z0HmFXF+YfX
+        EpMY/4lRk2hiNImJvTcUC4pix947igiIgBQVFFSqCtI7gvTeey/LLmUbW+m9CSgI2Ov9/97ZO+vs7Nzd
+        pYiY3Hme33Pv3r33nDlnvne+b+pJiKe9T2vWrEnYuXPn4b169Tq6W7duf+3UqdOVzZo1u+u9996r3rp1
+        67Zvv/326HfeeWdOq1atMvT3mnffffdjaY/0pfSt9IP0jfSFtFvf267vrdRrqn47U78d2qZNm5b637PN
+        mze/Xee4pGPHjn8aNWrUbyKRSMKePXuiOYmneIqnQumHH34opK+//joBaMaMGXNkjx49/irIygqsagLt
+        PYE2sWXLljl63aq/v5S+1fsfpIi+s8/i99L3HE/6XO836jwZ+t9IvbZQHp6SLu7bt+8J48aNO5z8ITff
+        8RRP/zPJNXy0aNGihNzc3MM7d+78J3nCcgLnZYE0QsqRdgPX/kK6r4rCDdgfS6l630+q3rZt20tVwRz7
+        7bffJixZsqTINcVTPP1XJ4WoCfJmR7Zv3/4UebcHBUdXKSMKbBCmkhSFzUjHCcr9DgodpyTpdz/oWB9J
+        8/Re2W91a5cuXf6Mdx4+fHj0CuMpnv7LktqXCQsXLkzo0KHDiWqD3ifj7yEIlkm0T4OwuLLQAaIVn8tr
+        R3TMiCCK9OzZM9KnT59Iv379IgMGDIgMGjTIiPf9+/c3/3v//fcjXbt2jagSiciTRpSXIsflb//8IUV/
+        97mULulQrSuoDf0HQuykpKTolcdTPP3Ckm0nbtq0KeGZZ55JEDy/kXFfJiNvqnblYr1+WRIkLlRA1qlT
+        p8gHH3wQUfs4MmvWrEhqampkxYoVkY0bN0a2bdsW+eSTTyKff/555Kuvvop88803RgpxjXiv9nXkyy+/
+        jHz22Wfmu9u3b49s2LAhsmzZskhaWpo55tixYw38AA7c5IPzk5dS5nePrm+uXl9SxXJmtC0fvSvxFE+/
+        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
+        RK5CYII=
+</value>
+  </data>
+</root>

+ 85 - 0
LibraryManager/Web/Views/Exit.Designer.cs

@@ -0,0 +1,85 @@
+namespace Web
+{
+    partial class Exit
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.btnCancel = new System.Windows.Forms.Button();
+            this.btnOK = new System.Windows.Forms.Button();
+            this.textBox1 = new System.Windows.Forms.TextBox();
+            this.SuspendLayout();
+            // 
+            // btnCancel
+            // 
+            this.btnCancel.Location = new System.Drawing.Point(344, 22);
+            this.btnCancel.Name = "btnCancel";
+            this.btnCancel.Size = new System.Drawing.Size(53, 23);
+            this.btnCancel.TabIndex = 4;
+            this.btnCancel.Text = "取消";
+            this.btnCancel.UseVisualStyleBackColor = true;
+            this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
+            // 
+            // btnOK
+            // 
+            this.btnOK.Location = new System.Drawing.Point(285, 22);
+            this.btnOK.Name = "btnOK";
+            this.btnOK.Size = new System.Drawing.Size(53, 23);
+            this.btnOK.TabIndex = 3;
+            this.btnOK.Text = "确定";
+            this.btnOK.UseVisualStyleBackColor = true;
+            this.btnOK.Click += new System.EventHandler(this.btnOK_Click);
+            // 
+            // textBox1
+            // 
+            this.textBox1.Location = new System.Drawing.Point(12, 24);
+            this.textBox1.Name = "textBox1";
+            this.textBox1.Size = new System.Drawing.Size(258, 21);
+            this.textBox1.TabIndex = 2;
+            // 
+            // Exit
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(420, 65);
+            this.Controls.Add(this.btnCancel);
+            this.Controls.Add(this.btnOK);
+            this.Controls.Add(this.textBox1);
+            this.Name = "Exit";
+            this.Text = "Exit";
+            this.Load += new System.EventHandler(this.Exit_Load);
+            this.ResumeLayout(false);
+            this.PerformLayout();
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.Button btnCancel;
+        private System.Windows.Forms.Button btnOK;
+        private System.Windows.Forms.TextBox textBox1;
+    }
+}

+ 103 - 0
LibraryManager/Web/Views/Exit.cs

@@ -0,0 +1,103 @@
+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 Model;
+using Common;
+using BLL;
+
+namespace Web
+{
+    public partial class Exit : Form
+    {
+        public Exit()
+        {
+            InitializeComponent();
+        }
+        public Class c = null;
+        public Department d = null;
+        public ReaderType r = null;
+        public Add aa = null;
+        public BookType t = null;
+        Com com = new Com();
+
+        private void Exit_Load(object sender, EventArgs e)
+        {
+            if (t != null)
+            {
+                this.textBox1.Text = t.BookTypeName;
+            }
+            else if (r != null)
+            {
+                this.textBox1.Text = r.ReaderTypeName;
+            }
+            else if (d != null)
+            {
+                this.textBox1.Text = d.DepartmentName;
+            }
+            else if (c != null)
+            {
+                this.textBox1.Text = c.ClassName;
+            }
+        }
+
+        private void btnCancel_Click(object sender, EventArgs e)
+        {
+            Close();
+        }
+
+        private void btnOK_Click(object sender, EventArgs e)
+        {
+            if (t != null)
+            {
+                t.BookTypeName = textBox1.Text.Trim();
+                if (aa.booktype.updateBookType(t) > 0)
+                {
+                    aa.dataGridView1.DataSource = aa.booktype.selectBookType1().Tables[0];
+                    //自动找到刚刚修改成功的行,并选中
+                    com.AutoFindRow(t.BookTypeId.ToString(), aa.dataGridView1);
+                }
+                else { MessageBox.Show("修改失败!"); }
+            }
+            if (r != null)
+            {
+                r.ReaderTypeName = textBox1.Text.Trim();
+                if (aa.readerType_bll.updateReaderType(r) > 0)
+                {
+                    aa.dataGridView2.DataSource = aa.readerType_bll.selectReaderType1().Tables[0];
+                    //自动找到刚刚修改成功的行,并选中
+                    com.AutoFindRow(r.ReaderTypeId.ToString(), aa.dataGridView2);
+                }
+                else { MessageBox.Show("修改失败!"); }
+            }
+            if (d != null)
+            {
+                d.DepartmentName = textBox1.Text.Trim();
+                if (aa.department_bll.updateDepartment(d) > 0)
+                {
+                    aa.dataGridView3.DataSource = aa.department_bll.selectDepartment1().Tables[0];
+                    //自动找到刚刚修改成功的行,并选中
+                    com.AutoFindRow(d.DepartmentId.ToString(), aa.dataGridView3);
+                }
+                else { MessageBox.Show("修改失败!"); }
+            }
+            if (c != null)
+            {
+                c.ClassName = textBox1.Text.Trim();
+                if (aa.class_bll.updateClass(c) > 0)
+                {
+                    aa.dataGridView4.DataSource = aa.class_bll.selectClass1().Tables[0];
+                    //自动找到刚刚修改成功的行,并选中
+                    com.AutoFindRow(c.ClassId.ToString(), aa.dataGridView4);
+                }
+                else { MessageBox.Show("修改失败!"); }
+            }
+            this.Close();
+        }
+    }
+}

+ 120 - 0
LibraryManager/Web/Views/Exit.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 66 - 0
LibraryManager/Web/Views/Info_UI.Designer.cs

@@ -0,0 +1,66 @@
+namespace Web
+{
+    partial class Info_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.dgvInfo = new System.Windows.Forms.DataGridView();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvInfo)).BeginInit();
+            this.SuspendLayout();
+            // 
+            // dgvInfo
+            // 
+            this.dgvInfo.BackgroundColor = System.Drawing.Color.White;
+            this.dgvInfo.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvInfo.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.dgvInfo.Location = new System.Drawing.Point(0, 0);
+            this.dgvInfo.Name = "dgvInfo";
+            this.dgvInfo.RowTemplate.Height = 23;
+            this.dgvInfo.Size = new System.Drawing.Size(570, 496);
+            this.dgvInfo.TabIndex = 1;
+            this.dgvInfo.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvInfo_CellContentClick);
+            this.dgvInfo.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dgvInfo_RowPostPaint);
+            // 
+            // Info_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(570, 496);
+            this.Controls.Add(this.dgvInfo);
+            this.Name = "Info_UI";
+            this.Text = "Info_UI";
+            this.Load += new System.EventHandler(this.Info_UI_Load);
+            ((System.ComponentModel.ISupportInitialize)(this.dgvInfo)).EndInit();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.DataGridView dgvInfo;
+    }
+}

+ 134 - 0
LibraryManager/Web/Views/Info_UI.cs

@@ -0,0 +1,134 @@
+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 Common;
+using BLL;
+using Model;
+
+namespace Web
+{
+    public partial class Info_UI : Form
+    {
+        public Info_UI()
+        {
+            InitializeComponent();
+        }
+        public BorrowHostory_UI BorrowHostory = null;
+        public string txtName = "";
+        public BorrowManager_UI borrowManager = null;
+        Com com = new Com();
+        Reader_BLL reader_bll = new Reader_BLL();
+        BookInfo_BLL bookInfo_bll = new BookInfo_BLL();
+
+        private void Info_UI_Load(object sender, EventArgs e)
+        {
+            if (txtName.Equals("读者信息"))
+            {
+                this.Text = "读者信息类表";
+                //需要添加列的列标题字符串
+                string arraysHeaderText = @"读者编号,读者名称,登记时间,有效时间,图书类型,所在院系,所在班级,省份证号,性别,电话,手机,Email,联系地址,描述信息";
+                //需要绑定数据库列名称的字符串
+                string arraysName = @"ReaderId,ReaderName,TimeIn,TimeOut,ReaderTypeName,DepartmentName,ClassName,IdentityCard,Gender,Special,Phone,Email,Address,ReaderRemark";
+
+                //自动生成columns
+                com.AutoColumn(arraysHeaderText, arraysName, dgvInfo);
+                for (int i = 0; i < dgvInfo.Columns.Count; i++)
+                {
+                    if (i > 5)
+                        dgvInfo.Columns[i].Visible = false;
+                }
+                dgvInfo.DataSource = reader_bll.selectReader().Tables[0];
+                dgvInfo.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+            }
+            else if (txtName == "图书信息")
+            {
+                this.Text = "图书信系列表";
+                //需要添加列的列标题字符串
+                string arraysHeaderText = @"图书编号,图书名称,登记时间,图书类型,作者,拼音码,翻译,语言,页数,价格,印刷版面,存放位置,ISBS码,版本,描述";
+                //需要绑定数据库列名称的字符串
+                string arraysName = @"BookId,BookName,TimeIn,BookTypeName,Author,PinYinCode,Translator,Language,BookNumber,Price,Layout,Address,ISBS,Versions,BookRemark";
+
+                //自动生成columns
+                com.AutoColumn(arraysHeaderText, arraysName, dgvInfo);
+                for (int i = 0; i < dgvInfo.Columns.Count; i++)
+                {
+                    if (i > 5)
+                        dgvInfo.Columns[i].Visible = false;
+                }
+                if (BorrowHostory != null)
+                {
+                    dgvInfo.DataSource = bookInfo_bll.selectBookInfo1().Tables[0];
+                }
+                else if (borrowManager != null)
+                {
+                    dgvInfo.DataSource = bookInfo_bll.selectBookInfo2("").Tables[0];
+                }
+
+                dgvInfo.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+            }
+
+            com.AddColumn("选取", dgvInfo);
+        }
+
+        private void dgvInfo_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            string name = "";
+            try
+            {
+                //选中行的编号
+                name = dgvInfo.Rows[e.RowIndex].Cells[0].Value.ToString();
+
+            }
+            catch (Exception) { }
+
+
+            if (e.ColumnIndex == dgvInfo.Columns.Count - 1)
+            {
+                if (borrowManager != null)
+                {
+                    if (txtName == "读者信息")
+                    {
+                        borrowManager.txtReaderId.Text = name;
+                    }
+                    else if (txtName == "图书信息")
+                    {
+                        borrowManager.txtBookId.Text = name;
+                    }
+                }
+                else if (BorrowHostory != null)
+                {
+                    if (txtName == "读者信息")
+                    {
+                        BorrowHostory.txtReaderId.Text = name;
+                    }
+                    else if (txtName == "图书信息")
+                    {
+                        BorrowHostory.txtBookId.Text = name;
+                    }
+                }
+                this.Close();
+            }
+        }
+
+        //当编辑绑定完 DataGridView所有单元格之后,执行绘制引发的事件
+        private void dgvInfo_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
+        {
+            System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(e.RowBounds.Location.X,
+               e.RowBounds.Location.Y,
+               dgvInfo.RowHeadersWidth - 4,
+               e.RowBounds.Height);
+
+            TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
+                dgvInfo.RowHeadersDefaultCellStyle.Font,
+                rectangle,
+                dgvInfo.RowHeadersDefaultCellStyle.ForeColor,
+                TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
+        }
+    }
+}

+ 120 - 0
LibraryManager/Web/Views/Info_UI.resx

@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+</root>

+ 502 - 0
LibraryManager/Web/Views/ReaderAdd_UI.Designer.cs

@@ -0,0 +1,502 @@
+namespace Web
+{
+    partial class ReaderAdd_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ReaderAdd_UI));
+            this.cboClass = new System.Windows.Forms.ComboBox();
+            this.cboDepartment = new System.Windows.Forms.ComboBox();
+            this.btnClass = new System.Windows.Forms.Button();
+            this.btnDepartment = new System.Windows.Forms.Button();
+            this.label13 = new System.Windows.Forms.Label();
+            this.txtAddress = new System.Windows.Forms.TextBox();
+            this.label12 = new System.Windows.Forms.Label();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.txtRemark = new System.Windows.Forms.TextBox();
+            this.label11 = new System.Windows.Forms.Label();
+            this.txtPhone = new System.Windows.Forms.TextBox();
+            this.label10 = new System.Windows.Forms.Label();
+            this.txtGender = new System.Windows.Forms.TextBox();
+            this.label8 = new System.Windows.Forms.Label();
+            this.txtEmail = new System.Windows.Forms.TextBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.txtSpecial = new System.Windows.Forms.TextBox();
+            this.label6 = new System.Windows.Forms.Label();
+            this.txtIdentityCard = new System.Windows.Forms.TextBox();
+            this.label5 = new System.Windows.Forms.Label();
+            this.label4 = new System.Windows.Forms.Label();
+            this.label2 = new System.Windows.Forms.Label();
+            this.checkBox1 = new System.Windows.Forms.CheckBox();
+            this.txtReaderId = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.lab = new System.Windows.Forms.Label();
+            this.cboReaderType = new System.Windows.Forms.ComboBox();
+            this.btnReaderType = new System.Windows.Forms.Button();
+            this.txtReaderName = new System.Windows.Forms.TextBox();
+            this.btnAdd = new System.Windows.Forms.Button();
+            this.dtTimeOut = new System.Windows.Forms.DateTimePicker();
+            this.label15 = new System.Windows.Forms.Label();
+            this.btnClose = new System.Windows.Forms.Button();
+            this.label9 = new System.Windows.Forms.Label();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.dtTimeIn = new System.Windows.Forms.DateTimePicker();
+            this.label17 = new System.Windows.Forms.Label();
+            this.groupBox2.SuspendLayout();
+            this.groupBox1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // cboClass
+            // 
+            this.cboClass.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboClass.FormattingEnabled = true;
+            this.cboClass.Location = new System.Drawing.Point(422, 29);
+            this.cboClass.Name = "cboClass";
+            this.cboClass.Size = new System.Drawing.Size(152, 20);
+            this.cboClass.TabIndex = 29;
+            // 
+            // cboDepartment
+            // 
+            this.cboDepartment.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboDepartment.FormattingEnabled = true;
+            this.cboDepartment.Location = new System.Drawing.Point(84, 29);
+            this.cboDepartment.Name = "cboDepartment";
+            this.cboDepartment.Size = new System.Drawing.Size(152, 20);
+            this.cboDepartment.TabIndex = 29;
+            // 
+            // btnClass
+            // 
+            this.btnClass.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnClass.BackgroundImage")));
+            this.btnClass.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.btnClass.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnClass.ForeColor = System.Drawing.SystemColors.Control;
+            this.btnClass.Location = new System.Drawing.Point(577, 27);
+            this.btnClass.Name = "btnClass";
+            this.btnClass.Size = new System.Drawing.Size(36, 23);
+            this.btnClass.TabIndex = 7;
+            this.btnClass.UseVisualStyleBackColor = true;
+            this.btnClass.Click += new System.EventHandler(this.btnClass_Click);
+            // 
+            // btnDepartment
+            // 
+            this.btnDepartment.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnDepartment.BackgroundImage")));
+            this.btnDepartment.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.btnDepartment.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnDepartment.ForeColor = System.Drawing.SystemColors.Control;
+            this.btnDepartment.Location = new System.Drawing.Point(242, 27);
+            this.btnDepartment.Name = "btnDepartment";
+            this.btnDepartment.Size = new System.Drawing.Size(36, 23);
+            this.btnDepartment.TabIndex = 7;
+            this.btnDepartment.UseVisualStyleBackColor = true;
+            this.btnDepartment.Click += new System.EventHandler(this.btnDepartment_Click);
+            // 
+            // label13
+            // 
+            this.label13.AutoSize = true;
+            this.label13.Location = new System.Drawing.Point(360, 150);
+            this.label13.Name = "label13";
+            this.label13.Size = new System.Drawing.Size(53, 12);
+            this.label13.TabIndex = 17;
+            this.label13.Text = "通讯地址";
+            // 
+            // txtAddress
+            // 
+            this.txtAddress.Location = new System.Drawing.Point(419, 147);
+            this.txtAddress.Name = "txtAddress";
+            this.txtAddress.Size = new System.Drawing.Size(152, 21);
+            this.txtAddress.TabIndex = 23;
+            // 
+            // label12
+            // 
+            this.label12.AutoSize = true;
+            this.label12.Location = new System.Drawing.Point(25, 185);
+            this.label12.Name = "label12";
+            this.label12.Size = new System.Drawing.Size(53, 12);
+            this.label12.TabIndex = 14;
+            this.label12.Text = "备    注";
+            // 
+            // groupBox2
+            // 
+            this.groupBox2.Controls.Add(this.cboClass);
+            this.groupBox2.Controls.Add(this.cboDepartment);
+            this.groupBox2.Controls.Add(this.btnClass);
+            this.groupBox2.Controls.Add(this.btnDepartment);
+            this.groupBox2.Controls.Add(this.label13);
+            this.groupBox2.Controls.Add(this.txtAddress);
+            this.groupBox2.Controls.Add(this.label12);
+            this.groupBox2.Controls.Add(this.txtRemark);
+            this.groupBox2.Controls.Add(this.label11);
+            this.groupBox2.Controls.Add(this.txtPhone);
+            this.groupBox2.Controls.Add(this.label10);
+            this.groupBox2.Controls.Add(this.txtGender);
+            this.groupBox2.Controls.Add(this.label8);
+            this.groupBox2.Controls.Add(this.txtEmail);
+            this.groupBox2.Controls.Add(this.label7);
+            this.groupBox2.Controls.Add(this.txtSpecial);
+            this.groupBox2.Controls.Add(this.label6);
+            this.groupBox2.Controls.Add(this.txtIdentityCard);
+            this.groupBox2.Controls.Add(this.label5);
+            this.groupBox2.Controls.Add(this.label4);
+            this.groupBox2.Location = new System.Drawing.Point(0, 167);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Size = new System.Drawing.Size(624, 313);
+            this.groupBox2.TabIndex = 9;
+            this.groupBox2.TabStop = false;
+            this.groupBox2.Text = "读者详细信息(可选)";
+            // 
+            // txtRemark
+            // 
+            this.txtRemark.Location = new System.Drawing.Point(84, 185);
+            this.txtRemark.Multiline = true;
+            this.txtRemark.Name = "txtRemark";
+            this.txtRemark.Size = new System.Drawing.Size(490, 106);
+            this.txtRemark.TabIndex = 28;
+            // 
+            // label11
+            // 
+            this.label11.AutoSize = true;
+            this.label11.Location = new System.Drawing.Point(360, 111);
+            this.label11.Name = "label11";
+            this.label11.Size = new System.Drawing.Size(53, 12);
+            this.label11.TabIndex = 13;
+            this.label11.Text = "手    机";
+            // 
+            // txtPhone
+            // 
+            this.txtPhone.Location = new System.Drawing.Point(419, 108);
+            this.txtPhone.Name = "txtPhone";
+            this.txtPhone.Size = new System.Drawing.Size(152, 21);
+            this.txtPhone.TabIndex = 19;
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.Location = new System.Drawing.Point(360, 70);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(53, 12);
+            this.label10.TabIndex = 8;
+            this.label10.Text = "性    别";
+            // 
+            // txtGender
+            // 
+            this.txtGender.Location = new System.Drawing.Point(419, 67);
+            this.txtGender.Name = "txtGender";
+            this.txtGender.Size = new System.Drawing.Size(152, 21);
+            this.txtGender.TabIndex = 25;
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Location = new System.Drawing.Point(25, 150);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(41, 12);
+            this.label8.TabIndex = 7;
+            this.label8.Text = " Email";
+            // 
+            // txtEmail
+            // 
+            this.txtEmail.Location = new System.Drawing.Point(84, 147);
+            this.txtEmail.Name = "txtEmail";
+            this.txtEmail.Size = new System.Drawing.Size(152, 21);
+            this.txtEmail.TabIndex = 24;
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(25, 111);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(53, 12);
+            this.label7.TabIndex = 6;
+            this.label7.Text = "电    话";
+            // 
+            // txtSpecial
+            // 
+            this.txtSpecial.Location = new System.Drawing.Point(84, 108);
+            this.txtSpecial.Name = "txtSpecial";
+            this.txtSpecial.Size = new System.Drawing.Size(152, 21);
+            this.txtSpecial.TabIndex = 27;
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(25, 70);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(53, 12);
+            this.label6.TabIndex = 9;
+            this.label6.Text = "生份证号";
+            // 
+            // txtIdentityCard
+            // 
+            this.txtIdentityCard.Location = new System.Drawing.Point(84, 67);
+            this.txtIdentityCard.Name = "txtIdentityCard";
+            this.txtIdentityCard.Size = new System.Drawing.Size(152, 21);
+            this.txtIdentityCard.TabIndex = 26;
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(25, 32);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(53, 12);
+            this.label5.TabIndex = 12;
+            this.label5.Text = "院    系";
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(360, 32);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(53, 12);
+            this.label4.TabIndex = 11;
+            this.label4.Text = "班    级";
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label2.ForeColor = System.Drawing.Color.Blue;
+            this.label2.Location = new System.Drawing.Point(357, 35);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(53, 12);
+            this.label2.TabIndex = 1;
+            this.label2.Text = "读者姓名";
+            // 
+            // checkBox1
+            // 
+            this.checkBox1.AutoSize = true;
+            this.checkBox1.Checked = true;
+            this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked;
+            this.checkBox1.Location = new System.Drawing.Point(239, 34);
+            this.checkBox1.Name = "checkBox1";
+            this.checkBox1.Size = new System.Drawing.Size(72, 16);
+            this.checkBox1.TabIndex = 4;
+            this.checkBox1.Text = "默认编号";
+            this.checkBox1.UseVisualStyleBackColor = true;
+            // 
+            // txtReaderId
+            // 
+            this.txtReaderId.Location = new System.Drawing.Point(81, 32);
+            this.txtReaderId.Name = "txtReaderId";
+            this.txtReaderId.Size = new System.Drawing.Size(152, 21);
+            this.txtReaderId.TabIndex = 2;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label1.ForeColor = System.Drawing.Color.Blue;
+            this.label1.Location = new System.Drawing.Point(22, 35);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(53, 12);
+            this.label1.TabIndex = 1;
+            this.label1.Text = "读者编号";
+            // 
+            // lab
+            // 
+            this.lab.AutoSize = true;
+            this.lab.ForeColor = System.Drawing.Color.Red;
+            this.lab.Location = new System.Drawing.Point(79, 17);
+            this.lab.Name = "lab";
+            this.lab.Size = new System.Drawing.Size(0, 12);
+            this.lab.TabIndex = 10;
+            // 
+            // cboReaderType
+            // 
+            this.cboReaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboReaderType.FormattingEnabled = true;
+            this.cboReaderType.Location = new System.Drawing.Point(81, 102);
+            this.cboReaderType.Name = "cboReaderType";
+            this.cboReaderType.Size = new System.Drawing.Size(152, 20);
+            this.cboReaderType.TabIndex = 8;
+            // 
+            // btnReaderType
+            // 
+            this.btnReaderType.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btnReaderType.BackgroundImage")));
+            this.btnReaderType.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.btnReaderType.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.btnReaderType.ForeColor = System.Drawing.SystemColors.Control;
+            this.btnReaderType.Location = new System.Drawing.Point(239, 100);
+            this.btnReaderType.Name = "btnReaderType";
+            this.btnReaderType.Size = new System.Drawing.Size(36, 23);
+            this.btnReaderType.TabIndex = 7;
+            this.btnReaderType.UseVisualStyleBackColor = true;
+            this.btnReaderType.Click += new System.EventHandler(this.btnReaderType_Click);
+            // 
+            // txtReaderName
+            // 
+            this.txtReaderName.Location = new System.Drawing.Point(416, 32);
+            this.txtReaderName.Name = "txtReaderName";
+            this.txtReaderName.Size = new System.Drawing.Size(152, 21);
+            this.txtReaderName.TabIndex = 2;
+            // 
+            // btnAdd
+            // 
+            this.btnAdd.Location = new System.Drawing.Point(439, 499);
+            this.btnAdd.Name = "btnAdd";
+            this.btnAdd.Size = new System.Drawing.Size(75, 23);
+            this.btnAdd.TabIndex = 7;
+            this.btnAdd.Text = "添加";
+            this.btnAdd.UseVisualStyleBackColor = true;
+            this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click);
+            // 
+            // dtTimeOut
+            // 
+            this.dtTimeOut.Location = new System.Drawing.Point(416, 64);
+            this.dtTimeOut.Name = "dtTimeOut";
+            this.dtTimeOut.Size = new System.Drawing.Size(152, 21);
+            this.dtTimeOut.TabIndex = 6;
+            // 
+            // label15
+            // 
+            this.label15.AutoSize = true;
+            this.label15.ForeColor = System.Drawing.Color.Blue;
+            this.label15.Location = new System.Drawing.Point(357, 70);
+            this.label15.Name = "label15";
+            this.label15.Size = new System.Drawing.Size(53, 12);
+            this.label15.TabIndex = 1;
+            this.label15.Text = "有效期至";
+            // 
+            // btnClose
+            // 
+            this.btnClose.Location = new System.Drawing.Point(549, 499);
+            this.btnClose.Name = "btnClose";
+            this.btnClose.Size = new System.Drawing.Size(75, 23);
+            this.btnClose.TabIndex = 8;
+            this.btnClose.Text = "退出";
+            this.btnClose.UseVisualStyleBackColor = true;
+            this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
+            // 
+            // label9
+            // 
+            this.label9.AutoSize = true;
+            this.label9.ForeColor = System.Drawing.Color.Blue;
+            this.label9.Location = new System.Drawing.Point(22, 70);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(53, 12);
+            this.label9.TabIndex = 1;
+            this.label9.Text = "登记时间";
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.lab);
+            this.groupBox1.Controls.Add(this.cboReaderType);
+            this.groupBox1.Controls.Add(this.btnReaderType);
+            this.groupBox1.Controls.Add(this.dtTimeIn);
+            this.groupBox1.Controls.Add(this.dtTimeOut);
+            this.groupBox1.Controls.Add(this.label15);
+            this.groupBox1.Controls.Add(this.label17);
+            this.groupBox1.Controls.Add(this.label9);
+            this.groupBox1.Controls.Add(this.txtReaderName);
+            this.groupBox1.Controls.Add(this.label2);
+            this.groupBox1.Controls.Add(this.checkBox1);
+            this.groupBox1.Controls.Add(this.txtReaderId);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Location = new System.Drawing.Point(3, 12);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(621, 141);
+            this.groupBox1.TabIndex = 6;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "读者基本信息(必填)";
+            // 
+            // dtTimeIn
+            // 
+            this.dtTimeIn.Location = new System.Drawing.Point(81, 64);
+            this.dtTimeIn.Name = "dtTimeIn";
+            this.dtTimeIn.Size = new System.Drawing.Size(152, 21);
+            this.dtTimeIn.TabIndex = 6;
+            // 
+            // label17
+            // 
+            this.label17.AutoSize = true;
+            this.label17.ForeColor = System.Drawing.Color.Blue;
+            this.label17.Location = new System.Drawing.Point(22, 103);
+            this.label17.Name = "label17";
+            this.label17.Size = new System.Drawing.Size(53, 12);
+            this.label17.TabIndex = 1;
+            this.label17.Text = "读者类型";
+            // 
+            // ReaderAdd_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(636, 534);
+            this.Controls.Add(this.groupBox2);
+            this.Controls.Add(this.btnAdd);
+            this.Controls.Add(this.btnClose);
+            this.Controls.Add(this.groupBox1);
+            this.Name = "ReaderAdd_UI";
+            this.Text = "添加读者";
+            this.Load += new System.EventHandler(this.ReaderAdd_UI_Load);
+            this.groupBox2.ResumeLayout(false);
+            this.groupBox2.PerformLayout();
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ComboBox cboClass;
+        private System.Windows.Forms.ComboBox cboDepartment;
+        private System.Windows.Forms.Button btnClass;
+        private System.Windows.Forms.Button btnDepartment;
+        private System.Windows.Forms.Label label13;
+        private System.Windows.Forms.TextBox txtAddress;
+        private System.Windows.Forms.Label label12;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.TextBox txtRemark;
+        private System.Windows.Forms.Label label11;
+        private System.Windows.Forms.TextBox txtPhone;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.TextBox txtGender;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.TextBox txtEmail;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.TextBox txtSpecial;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.TextBox txtIdentityCard;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.Label label4;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.CheckBox checkBox1;
+        private System.Windows.Forms.TextBox txtReaderId;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.Label lab;
+        private System.Windows.Forms.ComboBox cboReaderType;
+        private System.Windows.Forms.Button btnReaderType;
+        private System.Windows.Forms.TextBox txtReaderName;
+        private System.Windows.Forms.Button btnAdd;
+        private System.Windows.Forms.DateTimePicker dtTimeOut;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.Button btnClose;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.DateTimePicker dtTimeIn;
+        private System.Windows.Forms.Label label17;
+    }
+}

+ 136 - 0
LibraryManager/Web/Views/ReaderAdd_UI.cs

@@ -0,0 +1,136 @@
+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 BLL;
+using Model;
+using Common;
+
+namespace Web
+{
+    public partial class ReaderAdd_UI : Form
+    {
+        public ReaderAdd_UI()
+        {
+            InitializeComponent();
+        }
+        private void button3_MouseEnter(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Standard;
+        }
+
+        private void button3_MouseLeave(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Flat;
+        }
+        public ReaderManager_UI reader = null;
+
+        Reader_BLL reader_bll = new Reader_BLL();
+        ReaderType_BLL readerType_bll = new ReaderType_BLL();
+        Department_BLL department_bll = new Department_BLL();
+        Class_BLL class_bll = new Class_BLL();
+        Com com = new Com();
+
+        //加载
+        private void ReaderAdd_UI_Load(object sender, EventArgs e)
+        {
+            //读者类型的下拉框绑定
+            cboReaderType.DataSource = readerType_bll.selectReaderType();
+            cboReaderType.DisplayMember = "ReaderTypeName";
+            cboReaderType.ValueMember = "ReaderTypeId";
+
+            //院系的下拉框绑定
+            cboDepartment.DataSource = department_bll.selectDepartment();
+            cboDepartment.DisplayMember = "DepartmentName";
+            cboDepartment.ValueMember = "DepartmentId";
+
+            //班级的下拉框绑定
+            cboClass.DataSource = class_bll.selectClass();
+            cboClass.DisplayMember = "ClassName";
+            cboClass.ValueMember = "ClassId";
+        }
+
+        private void btnClose_Click(object sender, EventArgs e)
+        {
+            Close();
+        }
+        //添加读者类型
+        private void btnReaderType_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "读者类型";
+            a.readerManager = this.reader;
+            a.readerAdd = this;
+            a.ShowDialog();
+        }
+        //添加院系
+        private void btnDepartment_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "院系";
+            a.readerManager = this.reader;
+            a.readerAdd = this;
+            a.ShowDialog();
+        }
+        //添加班级
+        private void btnClass_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "班级";
+            a.readerManager = this.reader;
+            a.readerAdd = this;
+            a.ShowDialog();
+        }
+        //新增读者信息
+        private void btnAdd_Click(object sender, EventArgs e)
+        {
+            //图书编号必须唯一
+            int rows = reader.dgvHeaderInfo.RowCount;
+            lab.Text = "";
+            for (int i = 0; i < rows; i++)
+            {
+                string Columns1 = reader.dgvHeaderInfo.Rows[i].Cells[0].Value.ToString();
+                if (Columns1 == txtReaderId.Text.Trim())
+                {
+                    lab.Text = "读者编号已存在!";
+                    return;
+                }
+            }
+            Reader r = new Reader();
+            r.ReaderId = txtReaderId.Text.Trim();
+            r.ReaderName = txtReaderName.Text.Trim();
+            r.TimeIn = dtTimeIn.Value;
+            r.TimeOut = dtTimeOut.Value;
+            r.ReaderTypeId = (int)cboReaderType.SelectedValue;
+            r.DepartmentId = (int)cboDepartment.SelectedValue;
+            r.ClassId = (int)cboClass.SelectedValue;
+            r.IdentityCard = txtIdentityCard.Text.Trim();
+            r.Gender = txtGender.Text.Trim();
+            r.Phone = txtPhone.Text.Trim();
+            r.Special = txtSpecial.Text.Trim();
+            r.Email = txtEmail.Text.Trim();
+            r.Address = txtAddress.Text.Trim();
+            r.ReaderRemark = txtRemark.Text.Trim();
+
+            if (reader_bll.addReader(r) == 0)
+            {
+                MessageBox.Show("新增成功!");
+                //单击查询 刷新读者信息表
+                reader.btnSelect_Click(null, null);
+
+                //自动找到刚刚添加成功的新行,并选中
+                com.AutoFindRow(txtReaderId.Text.Trim(), reader.dgvHeaderInfo);
+            }
+            else
+            {
+                MessageBox.Show("新增失败!");
+            }
+        }
+
+    }
+}

+ 1060 - 0
LibraryManager/Web/Views/ReaderAdd_UI.resx

@@ -0,0 +1,1060 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="btnClass.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        pYxXAAAAAElFTkSuQmCC
+</value>
+  </data>
+  <data name="btnDepartment.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        pYxXAAAAAElFTkSuQmCC
+</value>
+  </data>
+  <data name="btnReaderType.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        pYxXAAAAAElFTkSuQmCC
+</value>
+  </data>
+</root>

+ 476 - 0
LibraryManager/Web/Views/ReaderExit_UI.Designer.cs

@@ -0,0 +1,476 @@
+namespace Web
+{
+    partial class ReaderExit_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ReaderExit_UI));
+            this.cboReaderType = new System.Windows.Forms.ComboBox();
+            this.dtTimeIn = new System.Windows.Forms.DateTimePicker();
+            this.dtTimeOut = new System.Windows.Forms.DateTimePicker();
+            this.label15 = new System.Windows.Forms.Label();
+            this.groupBox1 = new System.Windows.Forms.GroupBox();
+            this.button4 = new System.Windows.Forms.Button();
+            this.label17 = new System.Windows.Forms.Label();
+            this.label9 = new System.Windows.Forms.Label();
+            this.txtReaderName = new System.Windows.Forms.TextBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.txtReaderId = new System.Windows.Forms.TextBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.cboClass = new System.Windows.Forms.ComboBox();
+            this.cboDepartment = new System.Windows.Forms.ComboBox();
+            this.label13 = new System.Windows.Forms.Label();
+            this.txtAddress = new System.Windows.Forms.TextBox();
+            this.label12 = new System.Windows.Forms.Label();
+            this.button2 = new System.Windows.Forms.Button();
+            this.btnUpdate = new System.Windows.Forms.Button();
+            this.txtRemark = new System.Windows.Forms.TextBox();
+            this.txtIdentityCard = new System.Windows.Forms.TextBox();
+            this.label5 = new System.Windows.Forms.Label();
+            this.groupBox2 = new System.Windows.Forms.GroupBox();
+            this.button5 = new System.Windows.Forms.Button();
+            this.button3 = new System.Windows.Forms.Button();
+            this.label11 = new System.Windows.Forms.Label();
+            this.txtPhone = new System.Windows.Forms.TextBox();
+            this.label10 = new System.Windows.Forms.Label();
+            this.txtGender = new System.Windows.Forms.TextBox();
+            this.label8 = new System.Windows.Forms.Label();
+            this.txtEmail = new System.Windows.Forms.TextBox();
+            this.label7 = new System.Windows.Forms.Label();
+            this.txtSpecial = new System.Windows.Forms.TextBox();
+            this.label6 = new System.Windows.Forms.Label();
+            this.label4 = new System.Windows.Forms.Label();
+            this.groupBox1.SuspendLayout();
+            this.groupBox2.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // cboReaderType
+            // 
+            this.cboReaderType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboReaderType.FormattingEnabled = true;
+            this.cboReaderType.Location = new System.Drawing.Point(81, 102);
+            this.cboReaderType.Name = "cboReaderType";
+            this.cboReaderType.Size = new System.Drawing.Size(152, 20);
+            this.cboReaderType.TabIndex = 8;
+            // 
+            // dtTimeIn
+            // 
+            this.dtTimeIn.Location = new System.Drawing.Point(81, 64);
+            this.dtTimeIn.Name = "dtTimeIn";
+            this.dtTimeIn.Size = new System.Drawing.Size(152, 21);
+            this.dtTimeIn.TabIndex = 6;
+            // 
+            // dtTimeOut
+            // 
+            this.dtTimeOut.Location = new System.Drawing.Point(416, 64);
+            this.dtTimeOut.Name = "dtTimeOut";
+            this.dtTimeOut.Size = new System.Drawing.Size(152, 21);
+            this.dtTimeOut.TabIndex = 6;
+            // 
+            // label15
+            // 
+            this.label15.AutoSize = true;
+            this.label15.ForeColor = System.Drawing.Color.Blue;
+            this.label15.Location = new System.Drawing.Point(357, 70);
+            this.label15.Name = "label15";
+            this.label15.Size = new System.Drawing.Size(53, 12);
+            this.label15.TabIndex = 1;
+            this.label15.Text = "有效期至";
+            // 
+            // groupBox1
+            // 
+            this.groupBox1.Controls.Add(this.cboReaderType);
+            this.groupBox1.Controls.Add(this.button4);
+            this.groupBox1.Controls.Add(this.dtTimeIn);
+            this.groupBox1.Controls.Add(this.dtTimeOut);
+            this.groupBox1.Controls.Add(this.label15);
+            this.groupBox1.Controls.Add(this.label17);
+            this.groupBox1.Controls.Add(this.label9);
+            this.groupBox1.Controls.Add(this.txtReaderName);
+            this.groupBox1.Controls.Add(this.label2);
+            this.groupBox1.Controls.Add(this.txtReaderId);
+            this.groupBox1.Controls.Add(this.label1);
+            this.groupBox1.Location = new System.Drawing.Point(14, 12);
+            this.groupBox1.Name = "groupBox1";
+            this.groupBox1.Size = new System.Drawing.Size(621, 141);
+            this.groupBox1.TabIndex = 10;
+            this.groupBox1.TabStop = false;
+            this.groupBox1.Text = "读者基本信息(必填)";
+            // 
+            // button4
+            // 
+            this.button4.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button4.BackgroundImage")));
+            this.button4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.button4.ForeColor = System.Drawing.SystemColors.Control;
+            this.button4.Location = new System.Drawing.Point(239, 100);
+            this.button4.Name = "button4";
+            this.button4.Size = new System.Drawing.Size(36, 23);
+            this.button4.TabIndex = 7;
+            this.button4.UseVisualStyleBackColor = true;
+            this.button4.Click += new System.EventHandler(this.button4_Click);
+            // 
+            // label17
+            // 
+            this.label17.AutoSize = true;
+            this.label17.ForeColor = System.Drawing.Color.Blue;
+            this.label17.Location = new System.Drawing.Point(22, 103);
+            this.label17.Name = "label17";
+            this.label17.Size = new System.Drawing.Size(53, 12);
+            this.label17.TabIndex = 1;
+            this.label17.Text = "读者类型";
+            // 
+            // label9
+            // 
+            this.label9.AutoSize = true;
+            this.label9.ForeColor = System.Drawing.Color.Blue;
+            this.label9.Location = new System.Drawing.Point(22, 70);
+            this.label9.Name = "label9";
+            this.label9.Size = new System.Drawing.Size(53, 12);
+            this.label9.TabIndex = 1;
+            this.label9.Text = "登记时间";
+            // 
+            // txtReaderName
+            // 
+            this.txtReaderName.Location = new System.Drawing.Point(416, 32);
+            this.txtReaderName.Name = "txtReaderName";
+            this.txtReaderName.Size = new System.Drawing.Size(152, 21);
+            this.txtReaderName.TabIndex = 2;
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label2.ForeColor = System.Drawing.Color.Blue;
+            this.label2.Location = new System.Drawing.Point(357, 35);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(53, 12);
+            this.label2.TabIndex = 1;
+            this.label2.Text = "读者姓名";
+            // 
+            // txtReaderId
+            // 
+            this.txtReaderId.Location = new System.Drawing.Point(81, 32);
+            this.txtReaderId.Name = "txtReaderId";
+            this.txtReaderId.ReadOnly = true;
+            this.txtReaderId.Size = new System.Drawing.Size(152, 21);
+            this.txtReaderId.TabIndex = 2;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+            this.label1.ForeColor = System.Drawing.Color.Blue;
+            this.label1.Location = new System.Drawing.Point(22, 35);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(53, 12);
+            this.label1.TabIndex = 1;
+            this.label1.Text = "读者编号";
+            // 
+            // cboClass
+            // 
+            this.cboClass.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboClass.FormattingEnabled = true;
+            this.cboClass.Location = new System.Drawing.Point(422, 29);
+            this.cboClass.Name = "cboClass";
+            this.cboClass.Size = new System.Drawing.Size(152, 20);
+            this.cboClass.TabIndex = 29;
+            // 
+            // cboDepartment
+            // 
+            this.cboDepartment.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.cboDepartment.FormattingEnabled = true;
+            this.cboDepartment.Location = new System.Drawing.Point(84, 29);
+            this.cboDepartment.Name = "cboDepartment";
+            this.cboDepartment.Size = new System.Drawing.Size(152, 20);
+            this.cboDepartment.TabIndex = 29;
+            // 
+            // label13
+            // 
+            this.label13.AutoSize = true;
+            this.label13.Location = new System.Drawing.Point(360, 150);
+            this.label13.Name = "label13";
+            this.label13.Size = new System.Drawing.Size(53, 12);
+            this.label13.TabIndex = 17;
+            this.label13.Text = "通讯地址";
+            // 
+            // txtAddress
+            // 
+            this.txtAddress.Location = new System.Drawing.Point(419, 147);
+            this.txtAddress.Name = "txtAddress";
+            this.txtAddress.Size = new System.Drawing.Size(152, 21);
+            this.txtAddress.TabIndex = 23;
+            // 
+            // label12
+            // 
+            this.label12.AutoSize = true;
+            this.label12.Location = new System.Drawing.Point(25, 185);
+            this.label12.Name = "label12";
+            this.label12.Size = new System.Drawing.Size(53, 12);
+            this.label12.TabIndex = 14;
+            this.label12.Text = "备    注";
+            // 
+            // button2
+            // 
+            this.button2.Location = new System.Drawing.Point(560, 499);
+            this.button2.Name = "button2";
+            this.button2.Size = new System.Drawing.Size(75, 23);
+            this.button2.TabIndex = 12;
+            this.button2.Text = "退出";
+            this.button2.UseVisualStyleBackColor = true;
+            this.button2.Click += new System.EventHandler(this.button2_Click);
+            // 
+            // btnUpdate
+            // 
+            this.btnUpdate.Location = new System.Drawing.Point(450, 499);
+            this.btnUpdate.Name = "btnUpdate";
+            this.btnUpdate.Size = new System.Drawing.Size(75, 23);
+            this.btnUpdate.TabIndex = 11;
+            this.btnUpdate.Text = "修改";
+            this.btnUpdate.UseVisualStyleBackColor = true;
+            this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click);
+            // 
+            // txtRemark
+            // 
+            this.txtRemark.Location = new System.Drawing.Point(84, 185);
+            this.txtRemark.Multiline = true;
+            this.txtRemark.Name = "txtRemark";
+            this.txtRemark.Size = new System.Drawing.Size(490, 106);
+            this.txtRemark.TabIndex = 28;
+            // 
+            // txtIdentityCard
+            // 
+            this.txtIdentityCard.Location = new System.Drawing.Point(84, 67);
+            this.txtIdentityCard.Name = "txtIdentityCard";
+            this.txtIdentityCard.Size = new System.Drawing.Size(152, 21);
+            this.txtIdentityCard.TabIndex = 26;
+            // 
+            // label5
+            // 
+            this.label5.AutoSize = true;
+            this.label5.Location = new System.Drawing.Point(25, 32);
+            this.label5.Name = "label5";
+            this.label5.Size = new System.Drawing.Size(53, 12);
+            this.label5.TabIndex = 12;
+            this.label5.Text = "院    系";
+            // 
+            // groupBox2
+            // 
+            this.groupBox2.Controls.Add(this.cboClass);
+            this.groupBox2.Controls.Add(this.cboDepartment);
+            this.groupBox2.Controls.Add(this.button5);
+            this.groupBox2.Controls.Add(this.button3);
+            this.groupBox2.Controls.Add(this.label13);
+            this.groupBox2.Controls.Add(this.txtAddress);
+            this.groupBox2.Controls.Add(this.label12);
+            this.groupBox2.Controls.Add(this.txtRemark);
+            this.groupBox2.Controls.Add(this.label11);
+            this.groupBox2.Controls.Add(this.txtPhone);
+            this.groupBox2.Controls.Add(this.label10);
+            this.groupBox2.Controls.Add(this.txtGender);
+            this.groupBox2.Controls.Add(this.label8);
+            this.groupBox2.Controls.Add(this.txtEmail);
+            this.groupBox2.Controls.Add(this.label7);
+            this.groupBox2.Controls.Add(this.txtSpecial);
+            this.groupBox2.Controls.Add(this.label6);
+            this.groupBox2.Controls.Add(this.txtIdentityCard);
+            this.groupBox2.Controls.Add(this.label5);
+            this.groupBox2.Controls.Add(this.label4);
+            this.groupBox2.Location = new System.Drawing.Point(11, 167);
+            this.groupBox2.Name = "groupBox2";
+            this.groupBox2.Size = new System.Drawing.Size(624, 313);
+            this.groupBox2.TabIndex = 13;
+            this.groupBox2.TabStop = false;
+            this.groupBox2.Text = "读者详细信息(可选)";
+            // 
+            // button5
+            // 
+            this.button5.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button5.BackgroundImage")));
+            this.button5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.button5.ForeColor = System.Drawing.SystemColors.Control;
+            this.button5.Location = new System.Drawing.Point(577, 27);
+            this.button5.Name = "button5";
+            this.button5.Size = new System.Drawing.Size(36, 23);
+            this.button5.TabIndex = 7;
+            this.button5.UseVisualStyleBackColor = true;
+            this.button5.Click += new System.EventHandler(this.button5_Click);
+            // 
+            // button3
+            // 
+            this.button3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("button3.BackgroundImage")));
+            this.button3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+            this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
+            this.button3.ForeColor = System.Drawing.SystemColors.Control;
+            this.button3.Location = new System.Drawing.Point(242, 27);
+            this.button3.Name = "button3";
+            this.button3.Size = new System.Drawing.Size(36, 23);
+            this.button3.TabIndex = 7;
+            this.button3.UseVisualStyleBackColor = true;
+            this.button3.Click += new System.EventHandler(this.button3_Click);
+            // 
+            // label11
+            // 
+            this.label11.AutoSize = true;
+            this.label11.Location = new System.Drawing.Point(360, 111);
+            this.label11.Name = "label11";
+            this.label11.Size = new System.Drawing.Size(53, 12);
+            this.label11.TabIndex = 13;
+            this.label11.Text = "手    机";
+            // 
+            // txtPhone
+            // 
+            this.txtPhone.Location = new System.Drawing.Point(419, 108);
+            this.txtPhone.Name = "txtPhone";
+            this.txtPhone.Size = new System.Drawing.Size(152, 21);
+            this.txtPhone.TabIndex = 19;
+            // 
+            // label10
+            // 
+            this.label10.AutoSize = true;
+            this.label10.Location = new System.Drawing.Point(360, 70);
+            this.label10.Name = "label10";
+            this.label10.Size = new System.Drawing.Size(53, 12);
+            this.label10.TabIndex = 8;
+            this.label10.Text = "性    别";
+            // 
+            // txtGender
+            // 
+            this.txtGender.Location = new System.Drawing.Point(419, 67);
+            this.txtGender.Name = "txtGender";
+            this.txtGender.Size = new System.Drawing.Size(152, 21);
+            this.txtGender.TabIndex = 25;
+            // 
+            // label8
+            // 
+            this.label8.AutoSize = true;
+            this.label8.Location = new System.Drawing.Point(25, 150);
+            this.label8.Name = "label8";
+            this.label8.Size = new System.Drawing.Size(41, 12);
+            this.label8.TabIndex = 7;
+            this.label8.Text = " Email";
+            // 
+            // txtEmail
+            // 
+            this.txtEmail.Location = new System.Drawing.Point(84, 147);
+            this.txtEmail.Name = "txtEmail";
+            this.txtEmail.Size = new System.Drawing.Size(152, 21);
+            this.txtEmail.TabIndex = 24;
+            // 
+            // label7
+            // 
+            this.label7.AutoSize = true;
+            this.label7.Location = new System.Drawing.Point(25, 111);
+            this.label7.Name = "label7";
+            this.label7.Size = new System.Drawing.Size(53, 12);
+            this.label7.TabIndex = 6;
+            this.label7.Text = "电    话";
+            // 
+            // txtSpecial
+            // 
+            this.txtSpecial.Location = new System.Drawing.Point(84, 108);
+            this.txtSpecial.Name = "txtSpecial";
+            this.txtSpecial.Size = new System.Drawing.Size(152, 21);
+            this.txtSpecial.TabIndex = 27;
+            // 
+            // label6
+            // 
+            this.label6.AutoSize = true;
+            this.label6.Location = new System.Drawing.Point(25, 70);
+            this.label6.Name = "label6";
+            this.label6.Size = new System.Drawing.Size(53, 12);
+            this.label6.TabIndex = 9;
+            this.label6.Text = "生份证号";
+            // 
+            // label4
+            // 
+            this.label4.AutoSize = true;
+            this.label4.Location = new System.Drawing.Point(360, 32);
+            this.label4.Name = "label4";
+            this.label4.Size = new System.Drawing.Size(53, 12);
+            this.label4.TabIndex = 11;
+            this.label4.Text = "班    级";
+            // 
+            // ReaderExit_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(645, 532);
+            this.Controls.Add(this.groupBox1);
+            this.Controls.Add(this.button2);
+            this.Controls.Add(this.btnUpdate);
+            this.Controls.Add(this.groupBox2);
+            this.Name = "ReaderExit_UI";
+            this.Text = "修改读者信息";
+            this.Load += new System.EventHandler(this.ReaderExit_UI_Load);
+            this.groupBox1.ResumeLayout(false);
+            this.groupBox1.PerformLayout();
+            this.groupBox2.ResumeLayout(false);
+            this.groupBox2.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.ComboBox cboReaderType;
+        private System.Windows.Forms.DateTimePicker dtTimeIn;
+        private System.Windows.Forms.DateTimePicker dtTimeOut;
+        private System.Windows.Forms.Label label15;
+        private System.Windows.Forms.GroupBox groupBox1;
+        private System.Windows.Forms.Button button4;
+        private System.Windows.Forms.Label label17;
+        private System.Windows.Forms.Label label9;
+        private System.Windows.Forms.TextBox txtReaderName;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.TextBox txtReaderId;
+        private System.Windows.Forms.Label label1;
+        private System.Windows.Forms.ComboBox cboClass;
+        private System.Windows.Forms.ComboBox cboDepartment;
+        private System.Windows.Forms.Button button5;
+        private System.Windows.Forms.Button button3;
+        private System.Windows.Forms.Label label13;
+        private System.Windows.Forms.TextBox txtAddress;
+        private System.Windows.Forms.Label label12;
+        private System.Windows.Forms.Button button2;
+        private System.Windows.Forms.Button btnUpdate;
+        private System.Windows.Forms.TextBox txtRemark;
+        private System.Windows.Forms.TextBox txtIdentityCard;
+        private System.Windows.Forms.Label label5;
+        private System.Windows.Forms.GroupBox groupBox2;
+        private System.Windows.Forms.Label label11;
+        private System.Windows.Forms.TextBox txtPhone;
+        private System.Windows.Forms.Label label10;
+        private System.Windows.Forms.TextBox txtGender;
+        private System.Windows.Forms.Label label8;
+        private System.Windows.Forms.TextBox txtEmail;
+        private System.Windows.Forms.Label label7;
+        private System.Windows.Forms.TextBox txtSpecial;
+        private System.Windows.Forms.Label label6;
+        private System.Windows.Forms.Label label4;
+    }
+}

+ 140 - 0
LibraryManager/Web/Views/ReaderExit_UI.cs

@@ -0,0 +1,140 @@
+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 BLL;
+using Model;
+using Common;
+
+namespace Web
+{
+    public partial class ReaderExit_UI : Form
+    {
+        public ReaderExit_UI()
+        {
+            InitializeComponent();
+        }
+        private void button3_MouseEnter(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Standard;
+        }
+
+        private void button3_MouseLeave(object sender, EventArgs e)
+        {
+            ((Button)sender).FlatStyle = FlatStyle.Flat;
+        }
+
+        public ReaderManager_UI reader = null;
+        public string ReaderId = null;
+
+        Reader_BLL reader_bll = new Reader_BLL();
+        ReaderType_BLL readerType_bll = new ReaderType_BLL();
+        Department_BLL department_bll = new Department_BLL();
+        Class_BLL class_bll = new Class_BLL();
+        Com com = new Com();
+
+        public void ReaderExit_UI_Load(object sender, EventArgs e)
+        {
+            //读者类型的下拉框绑定
+            cboReaderType.DataSource = readerType_bll.selectReaderType();
+            cboReaderType.DisplayMember = "ReaderTypeName";
+            cboReaderType.ValueMember = "ReaderTypeId";
+
+            //院系的下拉框绑定
+            cboDepartment.DataSource = department_bll.selectDepartment();
+            cboDepartment.DisplayMember = "DepartmentName";
+            cboDepartment.ValueMember = "DepartmentId";
+            //班级的下拉框绑定
+            cboClass.DataSource = class_bll.selectClass();
+            cboClass.DisplayMember = "ClassName";
+            cboClass.ValueMember = "ClassId";
+
+            List<Reader> list = reader_bll.selectReader1(ReaderId);
+            txtReaderId.Text = list[0].ReaderId;
+            txtReaderName.Text = list[0].ReaderName;
+            dtTimeIn.Value = list[0].TimeIn;
+            dtTimeOut.Value = list[0].TimeOut;
+            cboReaderType.SelectedValue = list[0].ReaderTypeId;
+            cboDepartment.SelectedValue = list[0].DepartmentId;
+            cboClass.SelectedValue = list[0].ClassId;
+            txtIdentityCard.Text = list[0].IdentityCard;
+            txtGender.Text = list[0].Gender;
+            txtSpecial.Text = list[0].Special;
+            txtPhone.Text = list[0].Phone;
+            txtEmail.Text = list[0].Email;
+            txtAddress.Text = list[0].Address;
+            txtRemark.Text = list[0].ReaderRemark;
+        }
+
+        private void button2_Click(object sender, EventArgs e)
+        {
+            Close();
+        }
+
+        private void btnUpdate_Click(object sender, EventArgs e)
+        {
+            Reader r = new Reader();
+            r.ReaderId = txtReaderId.Text.Trim();
+            r.ReaderName = txtReaderName.Text.Trim();
+            r.TimeIn = dtTimeIn.Value;
+            r.TimeOut = dtTimeOut.Value;
+            r.ReaderTypeId = (int)cboReaderType.SelectedValue;
+            r.DepartmentId = (int)cboDepartment.SelectedValue;
+            r.ClassId = (int)cboClass.SelectedValue;
+            r.IdentityCard = txtIdentityCard.Text.Trim();
+            r.Gender = txtGender.Text.Trim();
+            r.Special = txtSpecial.Text.Trim();
+            r.Phone = txtPhone.Text.Trim();
+            r.Email = txtEmail.Text.Trim();
+            r.Address = txtAddress.Text.Trim();
+            r.ReaderRemark = txtRemark.Text.Trim();
+
+            if (reader_bll.updateReader(r) > 0)
+            {
+                MessageBox.Show("修改成功!");
+                //单价查询
+                reader.btnSelect_Click(null, null);
+
+                //自动找到刚刚修改成功的行,并选中
+                com.AutoFindRow(txtReaderId.Text.Trim(), reader.dgvHeaderInfo);
+            }
+            else
+            {
+                MessageBox.Show("修改失败!");
+            }
+        }
+        //读者类型编辑
+        private void button4_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "读者类型";
+            a.readerExit = this;
+            a.readerManager = this.reader;
+            a.ShowDialog();
+        }
+        //院系编辑
+        private void button3_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "院系";
+            a.readerExit = this;
+            a.readerManager = this.reader;
+            a.ShowDialog();
+        }
+        //班级编辑
+        private void button5_Click(object sender, EventArgs e)
+        {
+            Add a = new Add();
+            a.tabName = "班级";
+            a.readerExit = this;
+            a.readerManager = this.reader;
+            a.ShowDialog();
+        }
+
+    }
+}

+ 1060 - 0
LibraryManager/Web/Views/ReaderExit_UI.resx

@@ -0,0 +1,1060 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <data name="button4.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        pYxXAAAAAElFTkSuQmCC
+</value>
+  </data>
+  <data name="button5.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        pYxXAAAAAElFTkSuQmCC
+</value>
+  </data>
+  <data name="button3.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        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
+        pYxXAAAAAElFTkSuQmCC
+</value>
+  </data>
+</root>

+ 316 - 0
LibraryManager/Web/Views/ReaderManager_UI.Designer.cs

@@ -0,0 +1,316 @@
+namespace Web
+{
+    partial class ReaderManager_UI
+    {
+        /// <summary>
+        /// Required designer variable.
+        /// </summary>
+        private System.ComponentModel.IContainer components = null;
+
+        /// <summary>
+        /// Clean up any resources being used.
+        /// </summary>
+        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+        protected override void Dispose(bool disposing)
+        {
+            if (disposing && (components != null))
+            {
+                components.Dispose();
+            }
+            base.Dispose(disposing);
+        }
+
+        #region Windows Form Designer generated code
+
+        /// <summary>
+        /// Required method for Designer support - do not modify
+        /// the contents of this method with the code editor.
+        /// </summary>
+        private void InitializeComponent()
+        {
+            this.components = new System.ComponentModel.Container();
+            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ReaderManager_UI));
+            this.已借阅的图书 = new System.Windows.Forms.TabPage();
+            this.dgvReaderBorrowBook = new System.Windows.Forms.DataGridView();
+            this.借阅历史记录 = new System.Windows.Forms.TabPage();
+            this.dgvReaderBorrowBookInfoed = new System.Windows.Forms.DataGridView();
+            this.tabControl1 = new System.Windows.Forms.TabControl();
+            this.panel2 = new System.Windows.Forms.Panel();
+            this.dgvHeaderInfo = new System.Windows.Forms.DataGridView();
+            this.btnExitColumn = new System.Windows.Forms.Button();
+            this.btnAddReaderInfo = new System.Windows.Forms.Button();
+            this.btnSelect = new System.Windows.Forms.Button();
+            this.imageList1 = new System.Windows.Forms.ImageList(this.components);
+            this.textBox1 = new System.Windows.Forms.TextBox();
+            this.label2 = new System.Windows.Forms.Label();
+            this.comboBox1 = new System.Windows.Forms.ComboBox();
+            this.label1 = new System.Windows.Forms.Label();
+            this.treeView1 = new System.Windows.Forms.TreeView();
+            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+            this.panel1 = new System.Windows.Forms.Panel();
+            this.已借阅的图书.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvReaderBorrowBook)).BeginInit();
+            this.借阅历史记录.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvReaderBorrowBookInfoed)).BeginInit();
+            this.tabControl1.SuspendLayout();
+            this.panel2.SuspendLayout();
+            ((System.ComponentModel.ISupportInitialize)(this.dgvHeaderInfo)).BeginInit();
+            this.tableLayoutPanel1.SuspendLayout();
+            this.panel1.SuspendLayout();
+            this.SuspendLayout();
+            // 
+            // 已借阅的图书
+            // 
+            this.已借阅的图书.Controls.Add(this.dgvReaderBorrowBook);
+            this.已借阅的图书.Location = new System.Drawing.Point(4, 22);
+            this.已借阅的图书.Name = "已借阅的图书";
+            this.已借阅的图书.Padding = new System.Windows.Forms.Padding(3);
+            this.已借阅的图书.Size = new System.Drawing.Size(1055, 243);
+            this.已借阅的图书.TabIndex = 0;
+            this.已借阅的图书.Text = "已借阅的图书";
+            this.已借阅的图书.UseVisualStyleBackColor = true;
+            // 
+            // dgvReaderBorrowBook
+            // 
+            this.dgvReaderBorrowBook.AllowUserToAddRows = false;
+            this.dgvReaderBorrowBook.AllowUserToDeleteRows = false;
+            this.dgvReaderBorrowBook.AllowUserToResizeColumns = false;
+            this.dgvReaderBorrowBook.AllowUserToResizeRows = false;
+            this.dgvReaderBorrowBook.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
+            this.dgvReaderBorrowBook.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
+            this.dgvReaderBorrowBook.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            this.dgvReaderBorrowBook.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvReaderBorrowBook.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.dgvReaderBorrowBook.Location = new System.Drawing.Point(3, 3);
+            this.dgvReaderBorrowBook.Name = "dgvReaderBorrowBook";
+            this.dgvReaderBorrowBook.RowTemplate.Height = 23;
+            this.dgvReaderBorrowBook.Size = new System.Drawing.Size(1049, 237);
+            this.dgvReaderBorrowBook.TabIndex = 5;
+            // 
+            // 借阅历史记录
+            // 
+            this.借阅历史记录.Controls.Add(this.dgvReaderBorrowBookInfoed);
+            this.借阅历史记录.Location = new System.Drawing.Point(4, 22);
+            this.借阅历史记录.Name = "借阅历史记录";
+            this.借阅历史记录.Padding = new System.Windows.Forms.Padding(3);
+            this.借阅历史记录.Size = new System.Drawing.Size(1055, 243);
+            this.借阅历史记录.TabIndex = 1;
+            this.借阅历史记录.Text = "借阅历史记录";
+            this.借阅历史记录.UseVisualStyleBackColor = true;
+            // 
+            // dgvReaderBorrowBookInfoed
+            // 
+            this.dgvReaderBorrowBookInfoed.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
+            this.dgvReaderBorrowBookInfoed.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            this.dgvReaderBorrowBookInfoed.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvReaderBorrowBookInfoed.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.dgvReaderBorrowBookInfoed.Location = new System.Drawing.Point(3, 3);
+            this.dgvReaderBorrowBookInfoed.Name = "dgvReaderBorrowBookInfoed";
+            this.dgvReaderBorrowBookInfoed.RowTemplate.Height = 23;
+            this.dgvReaderBorrowBookInfoed.Size = new System.Drawing.Size(1049, 237);
+            this.dgvReaderBorrowBookInfoed.TabIndex = 4;
+            // 
+            // tabControl1
+            // 
+            this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
+            | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.tabControl1.Controls.Add(this.已借阅的图书);
+            this.tabControl1.Controls.Add(this.借阅历史记录);
+            this.tabControl1.HotTrack = true;
+            this.tabControl1.Location = new System.Drawing.Point(0, 284);
+            this.tabControl1.Name = "tabControl1";
+            this.tabControl1.SelectedIndex = 0;
+            this.tabControl1.Size = new System.Drawing.Size(1063, 269);
+            this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
+            this.tabControl1.TabIndex = 4;
+            // 
+            // panel2
+            // 
+            this.panel2.Controls.Add(this.tabControl1);
+            this.panel2.Controls.Add(this.dgvHeaderInfo);
+            this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel2.Location = new System.Drawing.Point(132, 71);
+            this.panel2.Name = "panel2";
+            this.panel2.Size = new System.Drawing.Size(1062, 553);
+            this.panel2.TabIndex = 2;
+            // 
+            // dgvHeaderInfo
+            // 
+            this.dgvHeaderInfo.AllowUserToAddRows = false;
+            this.dgvHeaderInfo.AllowUserToDeleteRows = false;
+            this.dgvHeaderInfo.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
+            | System.Windows.Forms.AnchorStyles.Right)));
+            this.dgvHeaderInfo.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
+            this.dgvHeaderInfo.BackgroundColor = System.Drawing.SystemColors.ButtonHighlight;
+            this.dgvHeaderInfo.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+            this.dgvHeaderInfo.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+            this.dgvHeaderInfo.Location = new System.Drawing.Point(0, 0);
+            this.dgvHeaderInfo.Name = "dgvHeaderInfo";
+            this.dgvHeaderInfo.RowTemplate.Height = 23;
+            this.dgvHeaderInfo.Size = new System.Drawing.Size(1062, 280);
+            this.dgvHeaderInfo.TabIndex = 3;
+            this.dgvHeaderInfo.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvHeaderInfo_CellContentClick);
+            this.dgvHeaderInfo.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dgvHeaderInfo_RowPostPaint);
+            // 
+            // btnExitColumn
+            // 
+            this.btnExitColumn.Location = new System.Drawing.Point(826, 20);
+            this.btnExitColumn.Name = "btnExitColumn";
+            this.btnExitColumn.Size = new System.Drawing.Size(122, 23);
+            this.btnExitColumn.TabIndex = 5;
+            this.btnExitColumn.Text = "更改表中的列";
+            this.btnExitColumn.UseVisualStyleBackColor = true;
+            this.btnExitColumn.Click += new System.EventHandler(this.btnExitColumn_Click);
+            // 
+            // btnAddReaderInfo
+            // 
+            this.btnAddReaderInfo.Location = new System.Drawing.Point(723, 21);
+            this.btnAddReaderInfo.Name = "btnAddReaderInfo";
+            this.btnAddReaderInfo.Size = new System.Drawing.Size(86, 23);
+            this.btnAddReaderInfo.TabIndex = 4;
+            this.btnAddReaderInfo.Text = "添加读者";
+            this.btnAddReaderInfo.UseVisualStyleBackColor = true;
+            this.btnAddReaderInfo.Click += new System.EventHandler(this.btnAddReaderInfo_Click);
+            // 
+            // btnSelect
+            // 
+            this.btnSelect.Location = new System.Drawing.Point(442, 21);
+            this.btnSelect.Name = "btnSelect";
+            this.btnSelect.Size = new System.Drawing.Size(75, 23);
+            this.btnSelect.TabIndex = 4;
+            this.btnSelect.Text = "查询";
+            this.btnSelect.UseVisualStyleBackColor = true;
+            this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
+            // 
+            // imageList1
+            // 
+            this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
+            this.imageList1.TransparentColor = System.Drawing.Color.Transparent;
+            this.imageList1.Images.SetKeyName(0, "64467.jpg.gif");
+            // 
+            // textBox1
+            // 
+            this.textBox1.Location = new System.Drawing.Point(283, 23);
+            this.textBox1.Name = "textBox1";
+            this.textBox1.Size = new System.Drawing.Size(128, 21);
+            this.textBox1.TabIndex = 3;
+            // 
+            // label2
+            // 
+            this.label2.AutoSize = true;
+            this.label2.Location = new System.Drawing.Point(236, 26);
+            this.label2.Name = "label2";
+            this.label2.Size = new System.Drawing.Size(41, 12);
+            this.label2.TabIndex = 2;
+            this.label2.Text = "关键字";
+            // 
+            // comboBox1
+            // 
+            this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+            this.comboBox1.FormattingEnabled = true;
+            this.comboBox1.Location = new System.Drawing.Point(80, 23);
+            this.comboBox1.Name = "comboBox1";
+            this.comboBox1.Size = new System.Drawing.Size(121, 20);
+            this.comboBox1.TabIndex = 1;
+            // 
+            // label1
+            // 
+            this.label1.AutoSize = true;
+            this.label1.Location = new System.Drawing.Point(21, 26);
+            this.label1.Name = "label1";
+            this.label1.Size = new System.Drawing.Size(53, 12);
+            this.label1.TabIndex = 0;
+            this.label1.Text = "搜索字段";
+            // 
+            // treeView1
+            // 
+            this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.treeView1.ImageIndex = 0;
+            this.treeView1.ImageList = this.imageList1;
+            this.treeView1.Location = new System.Drawing.Point(3, 71);
+            this.treeView1.Name = "treeView1";
+            this.treeView1.SelectedImageIndex = 0;
+            this.treeView1.Size = new System.Drawing.Size(123, 553);
+            this.treeView1.TabIndex = 0;
+            this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
+            // 
+            // tableLayoutPanel1
+            // 
+            this.tableLayoutPanel1.ColumnCount = 2;
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10.85271F));
+            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 89.14729F));
+            this.tableLayoutPanel1.Controls.Add(this.treeView1, 0, 1);
+            this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0);
+            this.tableLayoutPanel1.Controls.Add(this.panel2, 1, 1);
+            this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
+            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+            this.tableLayoutPanel1.RowCount = 2;
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.84813F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 89.15187F));
+            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+            this.tableLayoutPanel1.Size = new System.Drawing.Size(1197, 627);
+            this.tableLayoutPanel1.TabIndex = 2;
+            // 
+            // panel1
+            // 
+            this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
+            this.panel1.Controls.Add(this.btnExitColumn);
+            this.panel1.Controls.Add(this.btnAddReaderInfo);
+            this.panel1.Controls.Add(this.btnSelect);
+            this.panel1.Controls.Add(this.textBox1);
+            this.panel1.Controls.Add(this.label2);
+            this.panel1.Controls.Add(this.comboBox1);
+            this.panel1.Controls.Add(this.label1);
+            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
+            this.panel1.Location = new System.Drawing.Point(3, 3);
+            this.panel1.Name = "panel1";
+            this.panel1.Size = new System.Drawing.Size(1191, 62);
+            this.panel1.TabIndex = 1;
+            // 
+            // ReaderManager_UI
+            // 
+            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+            this.ClientSize = new System.Drawing.Size(1197, 627);
+            this.Controls.Add(this.tableLayoutPanel1);
+            this.Name = "ReaderManager_UI";
+            this.Text = "读者管理";
+            this.Load += new System.EventHandler(this.ReaderManager_UI_Load);
+            this.已借阅的图书.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.dgvReaderBorrowBook)).EndInit();
+            this.借阅历史记录.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.dgvReaderBorrowBookInfoed)).EndInit();
+            this.tabControl1.ResumeLayout(false);
+            this.panel2.ResumeLayout(false);
+            ((System.ComponentModel.ISupportInitialize)(this.dgvHeaderInfo)).EndInit();
+            this.tableLayoutPanel1.ResumeLayout(false);
+            this.panel1.ResumeLayout(false);
+            this.panel1.PerformLayout();
+            this.ResumeLayout(false);
+
+        }
+
+        #endregion
+
+        private System.Windows.Forms.TabPage 已借阅的图书;
+        public System.Windows.Forms.DataGridView dgvReaderBorrowBook;
+        private System.Windows.Forms.TabPage 借阅历史记录;
+        public System.Windows.Forms.DataGridView dgvReaderBorrowBookInfoed;
+        private System.Windows.Forms.TabControl tabControl1;
+        private System.Windows.Forms.Panel panel2;
+        public System.Windows.Forms.DataGridView dgvHeaderInfo;
+        private System.Windows.Forms.Button btnExitColumn;
+        private System.Windows.Forms.Button btnAddReaderInfo;
+        public System.Windows.Forms.Button btnSelect;
+        private System.Windows.Forms.ImageList imageList1;
+        private System.Windows.Forms.TextBox textBox1;
+        private System.Windows.Forms.Label label2;
+        private System.Windows.Forms.ComboBox comboBox1;
+        private System.Windows.Forms.Label label1;
+        public System.Windows.Forms.TreeView treeView1;
+        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
+        private System.Windows.Forms.Panel panel1;
+    }
+}

+ 265 - 0
LibraryManager/Web/Views/ReaderManager_UI.cs

@@ -0,0 +1,265 @@
+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 BLL;
+using Model;
+using Common;
+
+namespace Web
+{
+    public partial class ReaderManager_UI : Form
+    {
+        public ReaderManager_UI()
+        {
+            InitializeComponent();
+        }
+        public BookInfoManager_UI book = null;
+        Com autocoumns = new Com();
+        public Reader_BLL reader_bll = new Reader_BLL();
+        ReaderType_BLL readerType_bll = new ReaderType_BLL();
+        BorrowReturn_BLL borrowReturn_bll = new BorrowReturn_BLL();
+
+        //树状图的绑定
+        public void TreeViewBand()
+        {
+            //图书类型的集合
+            List<ReaderType> list = readerType_bll.selectReaderType();
+            TreeNode node = new TreeNode();
+            node.Text = "读者类型";
+            node.ImageIndex = 0;
+            treeView1.Nodes.Add(node);
+
+            foreach (ReaderType k in list)
+            {
+                TreeNode n = new TreeNode();
+                n.Text = k.ReaderTypeName;
+                n.Tag = k.ReaderTypeId;
+                n.ImageIndex = 0;
+                node.Nodes.Add(n);
+            }
+            treeView1.ExpandAll();
+        }
+        //读者管理窗体的加载事件
+        private void ReaderManager_UI_Load(object sender, EventArgs e)
+        {
+            //需要添加列的列标题字符串
+            string arraysHeaderText = @"读者编号,读者名称,登记时间,有效时间,读者类型,所在院系,所在班级,省份证号,性别,电话,手机,Email,联系地址,描述信息";
+            //需要绑定数据库列名称的字符串
+            string arraysName = @"ReaderId,ReaderName,TimeIn,TimeOut,ReaderTypeName,DepartmentName,ClassName,IdentityCard,Gender,Special,Phone,Email,Address,ReaderRemark";
+
+            //自动生成columns
+            autocoumns.AutoColumn(arraysHeaderText, arraysName, dgvHeaderInfo);
+            autocoumns.AddColumn("修改", dgvHeaderInfo);
+            autocoumns.AddColumn("删除", dgvHeaderInfo);
+
+            //dgvHeaderInfo数据集绑定
+            this.dgvHeaderInfo.DataSource = reader_bll.selectReader().Tables[0];
+            this.dgvHeaderInfo.Columns[13].Visible = false;
+            this.dgvHeaderInfo.Columns[12].Visible = false;
+            this.dgvHeaderInfo.Columns[11].Visible = false;
+            this.dgvHeaderInfo.Columns[10].Visible = false;
+
+            #region 下拉框绑定
+
+            DataGridViewColumnCollection columns = dgvHeaderInfo.Columns;
+
+            for (int i = 0; i < columns.Count - 2; i++)
+            {
+                comboBox1.Items.Add(columns[i].HeaderText);
+            }
+            comboBox1.Items.Insert(0, "全部");
+            comboBox1.SelectedIndex = 0;
+
+            #endregion
+
+
+            //树状图的绑定
+
+            TreeViewBand();
+
+            #region DataGridView3的绑定 已借阅的图书信息表
+
+            //dataGridView3.AutoGenerateColumns = false;
+            //需要添加列的列标题字符串
+            string arraysHeaderText1 = @"读者编号,读者名称,图书编号,图书名称,借出时间,书应归还时间,实际归还时间,应付罚金,续借次数,借还描述";
+            //需要绑定数据库列名称的字符串
+            string arraysName1 = @"ReaderId,ReaderName,BookId,BookName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark";
+
+            //自动生成columns
+            autocoumns.AutoColumn(arraysHeaderText1, arraysName1, dgvReaderBorrowBook);
+
+            //string index = dgvHeaderInfo.Rows[0].Cells[0].Value.ToString();
+            //DataGridView1数据集绑定
+            //this.dgvReaderBorrowBook.DataSource = borrowReturn_bll.ReaderBorrowReturn(index).Tables[0];
+
+            #endregion
+
+            #region DataGridView2的绑定 历史借阅记录表
+
+            //dataGridView2.AutoGenerateColumns = false;
+            //需要添加列的列标题字符串
+            string arraysHeaderText2 = @"读者编号,读者名称,图书编号,图书名称,借出时间,书应归还时间,实际归还时间,应付罚金,续借次数,借还描述";
+            //需要绑定数据库列名称的字符串
+            string arraysName2 = @"ReaderId,ReaderName,BookId,BookName,BorrowTime,ReturnTime,FactReturnTime,Fine,RenewCount,BorrowRemark";
+
+            //自动生成columns
+            autocoumns.AutoColumn(arraysHeaderText2, arraysName2, dgvReaderBorrowBookInfoed);
+
+            string index1 = dgvHeaderInfo.Rows[0].Cells[0].Value.ToString();
+            //DataGridView1数据集绑定
+            this.dgvReaderBorrowBookInfoed.DataSource = borrowReturn_bll.ReaderBorrowReturn1(index1).Tables[0];
+            dgvReaderBorrowBookInfoed.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
+
+            #endregion
+        }
+        //TreeView节点选项改变事件
+        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
+        {
+            if (treeView1.SelectedNode.Level == 0)
+            {
+                dgvHeaderInfo.DataSource = reader_bll.selectReader().Tables[0];
+            }
+            else if (treeView1.SelectedNode.Level == 1)
+            {
+                int index = (int)treeView1.SelectedNode.Tag;
+                dgvHeaderInfo.DataSource = reader_bll.selectReader(index).Tables[0];
+            }
+
+            //如果读者信息表中查不到一条数据,相关表的数据也清空
+            if (dgvHeaderInfo.Rows.Count == 0)
+            {
+                dgvReaderBorrowBookInfoed.DataSource = null;
+                dgvReaderBorrowBook.DataSource = null;
+                return;
+            }
+        }
+
+        
+        private void btnExitColumn_Click(object sender, EventArgs e)
+        {
+            BookInfoExitRows_UI b = new BookInfoExitRows_UI();
+            b.Reader = this;
+            b.ShowDialog();
+        }
+
+        //当编辑绑定完 DataGridView所有单元格之后,执行绘制引发的事件
+        //private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
+        //{
+
+        //}
+        //当编辑绑定完 DataGridView所有单元格之后,执行绘制引发的事件
+        private void dgvHeaderInfo_CellContentClick(object sender, DataGridViewCellEventArgs e)
+        {
+            string ReaderId = "";
+            try
+            {
+                //选中行的图书编号
+                ReaderId = dgvHeaderInfo.Rows[e.RowIndex].Cells[0].Value.ToString();
+
+            }
+            catch (Exception) { }
+
+            //单击某行 读者借阅表就显示相关的数据
+            dgvReaderBorrowBook.DataSource = borrowReturn_bll.ReaderBorrowReturn(ReaderId).Tables[0];
+
+            //单击某行 读者历史借阅表就显示相关的数据
+            dgvReaderBorrowBookInfoed.DataSource = borrowReturn_bll.ReaderBorrowReturn1(ReaderId).Tables[0];
+
+            //DataGridView的总列数
+            int rows = dgvHeaderInfo.Columns.Count;
+
+            if (e.ColumnIndex == rows - 2)//修改
+            {
+                ReaderExit_UI b = new ReaderExit_UI();
+                b.reader = this;
+                b.ReaderId = ReaderId;
+                b.ShowDialog();
+            }
+            else if (e.ColumnIndex == rows - 1)//删除
+            {
+                DialogResult result = MessageBox.Show("确定删除吗?", "提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
+                if (result == DialogResult.OK)
+                {
+                    if (reader_bll.deleteReader(ReaderId) > 0)
+                    {
+                        btnSelect_Click(null, null);
+                        //历史记录表中的数据引用着读者信息表的数据,删除读者信息应该刷新历史记录表
+                        book.dgvHostory.DataSource = book.borrowReturn_bll.selectBorrowReturn(book.BookId).Tables[0];
+                    }
+                    else
+                    {
+                        MessageBox.Show("删除失败!");
+                    }
+                }
+            }
+        }
+
+        //当编辑绑定完 DataGridView所有单元格之后,执行绘制引发的事件
+        private void dgvHeaderInfo_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
+        {
+            System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(e.RowBounds.Location.X,
+               e.RowBounds.Location.Y,
+               dgvHeaderInfo.RowHeadersWidth - 4,
+               e.RowBounds.Height);
+
+            TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
+                dgvHeaderInfo.RowHeadersDefaultCellStyle.Font,
+                rectangle,
+                dgvHeaderInfo.RowHeadersDefaultCellStyle.ForeColor,
+                TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
+        }
+
+        //单击查询按钮
+        public void btnSelect_Click(object sender, EventArgs e)
+        {
+            DataGridViewColumnCollection columns = dgvHeaderInfo.Columns;
+            if (comboBox1.SelectedIndex == 0)//全部
+            {
+                List<string> list = new List<string>();
+                for (int i = 0; i < columns.Count - 2; i++)
+                {
+                    list.Add(columns[i].DataPropertyName);
+                }
+                string B = textBox1.Text.Trim();
+                dgvHeaderInfo.DataSource = reader_bll.selectReader(list, B).Tables[0];
+            }
+            else
+            {
+
+                for (int i = 0; i < columns.Count - 2; i++)
+                {
+                    if (comboBox1.SelectedItem.ToString() == columns[i].HeaderText)
+                    {
+                        string A = columns[i].DataPropertyName;
+                        string B = textBox1.Text.Trim();
+                        dgvHeaderInfo.DataSource = reader_bll.selectReader(A, B).Tables[0];
+                        break;
+                    }
+                }
+            }
+
+            //如果读者信息表中查不到一条数据,相关表的数据也清空
+            if (dgvHeaderInfo.Rows.Count == 0)
+            {
+                dgvReaderBorrowBookInfoed.DataSource = null;
+                dgvReaderBorrowBook.DataSource = null;
+                return;
+            }
+        }
+
+
+        public ReaderAdd_UI readerAdd;
+        public void btnAddReaderInfo_Click(object sender, EventArgs e)
+        {
+            readerAdd = new ReaderAdd_UI();
+            readerAdd.reader = this;
+            readerAdd.ShowDialog();
+        }
+    }
+}

+ 153 - 0
LibraryManager/Web/Views/ReaderManager_UI.resx

@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <metadata name="imageList1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
+  <data name="imageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
+        LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
+        ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABY
+        BQAAAk1TRnQBSQFMAwEBAAFYAQABWAEAARIBAAESAQAE/wEhAQAI/wFCAU0BNgcAATYDAAEoAwABSAMA
+        ARIDAAEBAQABIAUAAUABFBwAAZUB/wIAAZUB/wIAAZUB/wIAAZUB/wIAAZUB/wIAAU8B/wEKARkBJwH/
+        ARkBJAEyAf8BAAEDARIB/wIAAUoB/wIAAUoB/wIAAWYB/wIAAWYB/wIAAWYB/wIAAWQB/+QAAYkBjgGT
+        Af8BjwGTAZoB/wLDAccB/wLhAeMB/wMUARwIAAIRARIB/wQAAfAB8QHyAf8BCAEQAR8B/wFsAa4BuQH/
+        AUgBaQGFAf8BBgEOAR0B/wEAAQgBGAH/AscByAH/4AADNQFWAu0B/QH/AvAB/gH/AzUBVgMHAf8DCAH/
+        AwgB/wMHAf8DBQH/AwAB/wIKAQsB/wwAA1IBqeAAAukB/QH/AqgB9QH/AjsBxAH/AgABgQH/AgsBSQH/
+        AhUBFwH/AhUBFgH/A2QB/wGMAY0BjwH/AhABEQH/AQ0BDAENAf8DCAH/AQABAQEUAf8CAAE7Af8CnAHz
+        Af8CtgH2Af8C5gH8Af/cAALKAfkB/wIVAaEB/wIAAdkB/wIAAcQB/wIMAXMB/wIhAT4B/wJdAV4B/wEi
+        AiMB/wEgAiEB/wMeAf8C3QHfAf8CEQESAf8CAwFNAf8CAAGhAf8CAAHNAf8CFwG0Af8CrQH2Af/cAALl
+        Af0B/wIGAWEB/wIEAZkB/wEKAQkBiQH/AoEBgAH/AlIBUwH/AjEBMgH/AjABMQH/Ai4BLwH/AioBKwH/
+        AiQBJQH/AQcCCAH/AQEBAgEcAf8CAAGSAf8CAAG4Af8CAAGJAf8CuQH3Af/gAAEZAR0BJgH/AdcB1gHP
+        Cf8CrAGtAf8DAAH/AR4BHQEcAf8COQE6Af8BGgIbCf8DAAH/AwAB/wMAAf8CAAEpAf8C9wH+Af/gAAEj
+        AiQR/wE5AjgB/wH7AfoB8gH/AkMBRA3/A+QB/wOjAf8B+wH6AfIB/wMCAf/kAAMoFf8B/QH8AfgB/wJL
+        AUwZ/wMEAf/kAAIpASoV/wH6AfkB8gH/Ak8BUBX/AfwB+wHzAf8DBQH/5AADUgGpAjQBNQH/Av4B+wn/
+        AnIBcwH/AlQBVQH/AU0BTgFPAf8DRxH/AhABEQH/A1MBqugAAyIB/wI6ATsB/wJCAUMB/wJIAUkB/wJM
+        AU0B/wJMAU0B/wJIAUkB/wJCAUMB/wI5AToB/wIvATAB/wIlASYB/wIZARoB/wINAQ4B//AAAyAB/wI6
+        ATsB/wI/AUAB/wJCAUMB/wJCAUMB/wI/AUAB/wI5AToB/wIxATIB/wIqASsB/wMeAf8CEgETAf/8AAMz
+        Af8C6wHtAf8CNwE4Af8CNAE1Af8BkQGSAZMB/wLtAe8B/wIfASAB/wNIAYQCZwFoAf/wAAI8AT0B/wJD
+        AUQB/wMmATkDEwH/GAADvAH/ASUBJAElAf8DDQH/6AACPQE+Af8CVAFVAf8CSgFLAf8CLAEtAf8DCAH/
+        FAACQAE/Af8BTQFOAU8B/wI/AUAB/wK2AbUB/+wAA2gB/wJQAVEB/xwAAkABQQH/AU4BTwFQAf8CVwFZ
+        Af//AP8ABgABQgFNAT4HAAE+AwABKAMAAUgDAAESAwABAQEAAQEFAAHYFwAD/wEAAcABAAFACQABwQGg
+        CgABwAEHAUAJAAGACwABgAsAAYALAAHACwABwAEAAUAJAAHAAQABQAkAAcABAAFACQABwAEAAUAJAAHg
+        AQABwAkAAfABAQHACQAB/AEBAcAJAAHhAfgBwAkAAcEB8AHACQAB5wHxAcAJAAL/AcAJAAs=
+</value>
+  </data>
+</root>

+ 231 - 0
LibraryManager/Web/Web.csproj

@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{4C3D5D53-7AA1-44A9-BD68-8DFBB93797EB}</ProjectGuid>
+    <OutputType>WinExe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>Web</RootNamespace>
+    <AssemblyName>Web</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Deployment" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.Windows.Forms" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Views\Add.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\Add.Designer.cs">
+      <DependentUpon>Add.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\BookInfoAdd_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\BookInfoAdd_UI.Designer.cs">
+      <DependentUpon>BookInfoAdd_UI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\BookInfoExitRows_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\BookInfoExitRows_UI.Designer.cs">
+      <DependentUpon>BookInfoExitRows_UI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\BookInfoExit_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\BookInfoExit_UI.Designer.cs">
+      <DependentUpon>BookInfoExit_UI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\BookInfoManager_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\BookInfoManager_UI.Designer.cs">
+      <DependentUpon>BookInfoManager_UI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\BorrowHostory_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\BorrowHostory_UI.Designer.cs">
+      <DependentUpon>BorrowHostory_UI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\BorrowManager_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\BorrowManager_UI.Designer.cs">
+      <DependentUpon>BorrowManager_UI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\Exit.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\Exit.Designer.cs">
+      <DependentUpon>Exit.cs</DependentUpon>
+    </Compile>
+    <Compile Include="FrmMain.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="FrmMain.Designer.cs">
+      <DependentUpon>FrmMain.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\Info_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\Info_UI.Designer.cs">
+      <DependentUpon>Info_UI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Login.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Login.Designer.cs">
+      <DependentUpon>Login.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="Views\ReaderAdd_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\ReaderAdd_UI.Designer.cs">
+      <DependentUpon>ReaderAdd_UI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\ReaderExit_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\ReaderExit_UI.Designer.cs">
+      <DependentUpon>ReaderExit_UI.cs</DependentUpon>
+    </Compile>
+    <Compile Include="Views\ReaderManager_UI.cs">
+      <SubType>Form</SubType>
+    </Compile>
+    <Compile Include="Views\ReaderManager_UI.Designer.cs">
+      <DependentUpon>ReaderManager_UI.cs</DependentUpon>
+    </Compile>
+    <EmbeddedResource Include="Views\Add.resx">
+      <DependentUpon>Add.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\BookInfoAdd_UI.resx">
+      <DependentUpon>BookInfoAdd_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\BookInfoExitRows_UI.resx">
+      <DependentUpon>BookInfoExitRows_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\BookInfoExit_UI.resx">
+      <DependentUpon>BookInfoExit_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\BookInfoManager_UI.resx">
+      <DependentUpon>BookInfoManager_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\BorrowHostory_UI.resx">
+      <DependentUpon>BorrowHostory_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\BorrowManager_UI.resx">
+      <DependentUpon>BorrowManager_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\Exit.resx">
+      <DependentUpon>Exit.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="FrmMain.resx">
+      <DependentUpon>FrmMain.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\Info_UI.resx">
+      <DependentUpon>Info_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Login.resx">
+      <DependentUpon>Login.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Properties\Resources.resx">
+      <Generator>ResXFileCodeGenerator</Generator>
+      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
+    <Compile Include="Properties\Resources.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Resources.resx</DependentUpon>
+      <DesignTime>True</DesignTime>
+    </Compile>
+    <EmbeddedResource Include="Views\ReaderAdd_UI.resx">
+      <DependentUpon>ReaderAdd_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\ReaderExit_UI.resx">
+      <DependentUpon>ReaderExit_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <EmbeddedResource Include="Views\ReaderManager_UI.resx">
+      <DependentUpon>ReaderManager_UI.cs</DependentUpon>
+    </EmbeddedResource>
+    <None Include="Properties\Settings.settings">
+      <Generator>SettingsSingleFileGenerator</Generator>
+      <LastGenOutput>Settings.Designer.cs</LastGenOutput>
+    </None>
+    <Compile Include="Properties\Settings.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DependentUpon>Settings.settings</DependentUpon>
+      <DesignTimeSharedInput>True</DesignTimeSharedInput>
+    </Compile>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="Image\01.png" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\BLL\BLL.csproj">
+      <Project>{d4f18d93-5f9c-4187-bff2-3f144dc28252}</Project>
+      <Name>BLL</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Common\Common.csproj">
+      <Project>{f3a1fc10-4a67-4939-9c50-5948b6ddf7b3}</Project>
+      <Name>Common</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\DAL\DAL.csproj">
+      <Project>{9af87eca-c92c-430a-abb8-53794298fb19}</Project>
+      <Name>DAL</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\Model\Model.csproj">
+      <Project>{534c572a-1c8d-46a3-a77d-322bde5b1543}</Project>
+      <Name>Model</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="Pages\" />
+    <Folder Include="Utils\" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 35 - 0
README.md

@@ -0,0 +1,35 @@
+# LibraryManager
+
+C# 图书管理系统
+
+## developer
+
+* vs 2019 above
+* sql server2018
+* windows 10 above
+
+
+| 项目 | 介绍 | 备注 |
+| -------- | -------- | -------- |
+| BLL     | 逻辑层,业务层     |      |
+| DAL     | 数据层     |      |
+| Model     | 模型层     |      |
+| Common     | 通用层     |      |
+| Web     | 主项目,UI     |      |
+
+
+
+```
+Get-Package
+
+# Data/Library.sql 导入数据库
+
+# 配置数据库
+vim Web/App.config
+
+  <connectionStrings>
+    <add name="a" connectionString="Data Source=.;Initial Catalog=Library;User Id=sa;Password=123456"/>
+  </connectionStrings>
+
+```
+