提交源码

This commit is contained in:
筱傑 2018-12-17 13:32:03 +08:00 committed by GitHub
parent 24825b1780
commit a8bf919d6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
61 changed files with 6838 additions and 0 deletions

82
AuditoriumMS/Access.cs Normal file
View File

@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
namespace AuditoriumMS
{
/// <summary>
/// 数据库连接类
/// </summary>
public class Access
{
// 这里改成解决方案目录下那个accdb文件 ↓
static string DbPath = @"F:\C#\培优礼堂票务管理系统\AuditoriumMS" + @"\DbTicketing.accdb";
OleDbConnection oleDb = new OleDbConnection(string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}", DbPath));
// 私有构造函数,单例实现
private Access()
{
oleDb.Open();
}
private static Access access;
/// <summary>
/// 数据库连接对象
/// </summary>
public static Access obj
{
get
{
if (access == null)
access = new Access();
return access;
}
}
/// <summary>
/// 得到DataTable 适用于查询语句 返回查询结果
/// </summary>
public DataTable GetDataTable(string SQL)
{
OleDbDataAdapter dbDataAdapter = new OleDbDataAdapter(SQL, oleDb);
DataTable dt = new DataTable();
dbDataAdapter.Fill(dt);
return dt;
}
/// <summary>
/// 执行命令 适用于增删改 返回受影响行数
/// </summary>
public int Execute(string SQL)
{
OleDbCommand oleDbCommand = new OleDbCommand(SQL, oleDb);
return oleDbCommand.ExecuteNonQuery();
}
/// <summary>
/// 字符串过滤防止sql注入。
/// </summary>
/// <param name="str">参数</param>
/// <returns>是否有敏感字符</returns>
public static bool IsHasSQLInject(string str)
{
bool isHasSQLInject = false;
//字符串中的关键字更具需要添加
string inj_str = "'|and|exec|union|create|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|xp_|or|--|+";
str = str.ToLower().Trim();
string[] inj_str_array = inj_str.Split('|');
foreach (string sql in inj_str_array)
{
if (str.IndexOf(sql) > -1)
{
isHasSQLInject = true;
break;
}
}
return isHasSQLInject;
}
}
}

View File

@ -0,0 +1,229 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" 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>{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>AuditoriumMS</RootNamespace>
<AssemblyName>AuditoriumMS</AssemblyName>
<TargetFrameworkVersion>v4.0</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>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\x86\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
<OutputPath>bin\x86\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<ErrorReport>prompt</ErrorReport>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Windows.Forms.DataVisualization" />
<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="Access.cs" />
<Compile Include="FormMain.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormMain.Designer.cs">
<DependentUpon>FormMain.cs</DependentUpon>
</Compile>
<Compile Include="FormManageSystem.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FormManageSystem.Designer.cs">
<DependentUpon>FormManageSystem.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormAdminLogin.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormAdminLogin.Designer.cs">
<DependentUpon>FormAdminLogin.cs</DependentUpon>
</Compile>
<Compile Include="Forms\FormVerify.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\FormVerify.Designer.cs">
<DependentUpon>FormVerify.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="UserControls\UCBooking.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCBooking.Designer.cs">
<DependentUpon>UCBooking.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCModifyPassword.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCModifyPassword.Designer.cs">
<DependentUpon>UCModifyPassword.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCNewAuditorium.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCNewAuditorium.Designer.cs">
<DependentUpon>UCNewAuditorium.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCReservationInfoSelect.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCReservationInfoSelect.Designer.cs">
<DependentUpon>UCReservationInfoSelect.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCSeatMap.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCSeatMap.Designer.cs">
<DependentUpon>UCSeatMap.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCShowChart.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCShowChart.Designer.cs">
<DependentUpon>UCShowChart.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCSummaryReport.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCSummaryReport.Designer.cs">
<DependentUpon>UCSummaryReport.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCTicketCountSelect.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCTicketCountSelect.Designer.cs">
<DependentUpon>UCTicketCountSelect.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCTicketCountStatistics.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCTicketCountStatistics.Designer.cs">
<DependentUpon>UCTicketCountStatistics.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCTicketSelect.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCTicketSelect.Designer.cs">
<DependentUpon>UCTicketSelect.cs</DependentUpon>
</Compile>
<Compile Include="UserControls\UCTicketStatistics.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UserControls\UCTicketStatistics.Designer.cs">
<DependentUpon>UCTicketStatistics.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="FormMain.resx">
<DependentUpon>FormMain.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FormManageSystem.resx">
<DependentUpon>FormManageSystem.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormAdminLogin.resx">
<DependentUpon>FormAdminLogin.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FormVerify.resx">
<DependentUpon>FormVerify.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>
</Compile>
<EmbeddedResource Include="UserControls\UCBooking.resx">
<DependentUpon>UCBooking.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCModifyPassword.resx">
<DependentUpon>UCModifyPassword.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCNewAuditorium.resx">
<DependentUpon>UCNewAuditorium.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCReservationInfoSelect.resx">
<DependentUpon>UCReservationInfoSelect.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCSeatMap.resx">
<DependentUpon>UCSeatMap.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCShowChart.resx">
<DependentUpon>UCShowChart.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCSummaryReport.resx">
<DependentUpon>UCSummaryReport.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCTicketCountSelect.resx">
<DependentUpon>UCTicketCountSelect.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCTicketCountStatistics.resx">
<DependentUpon>UCTicketCountStatistics.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCTicketSelect.resx">
<DependentUpon>UCTicketSelect.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UserControls\UCTicketStatistics.resx">
<DependentUpon>UCTicketStatistics.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>
<Content Include="DbTicketing.accdb">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -0,0 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2036
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AuditoriumMS", "AuditoriumMS.csproj", "{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Debug|Any CPU.Build.0 = Debug|Any CPU
{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Debug|x86.ActiveCfg = Debug|x86
{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Debug|x86.Build.0 = Debug|x86
{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Release|Any CPU.ActiveCfg = Release|Any CPU
{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Release|Any CPU.Build.0 = Release|Any CPU
{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Release|x86.ActiveCfg = Release|x86
{131A3E33-BCF0-4E9C-BF60-5F97DDB4FA75}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {9550CF8D-9B77-4C4D-9CD9-E6AD30D1A9F0}
EndGlobalSection
EndGlobal

Binary file not shown.

164
AuditoriumMS/FormMain.Designer.cs generated Normal file
View File

@ -0,0 +1,164 @@
namespace AuditoriumMS
{
partial class FormMain
{
/// <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.btnManagement = new System.Windows.Forms.Button();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPageLecture = new System.Windows.Forms.TabPage();
this.treeLecture = new System.Windows.Forms.TreeView();
this.tabPageMovie = new System.Windows.Forms.TabPage();
this.treeMovie = new System.Windows.Forms.TreeView();
this.btnUpdate = new System.Windows.Forms.Button();
this.btnBooking = new AuditoriumMS.UserControls.UCBooking();
this.tabControl1.SuspendLayout();
this.tabPageLecture.SuspendLayout();
this.tabPageMovie.SuspendLayout();
this.SuspendLayout();
//
// btnManagement
//
this.btnManagement.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnManagement.Location = new System.Drawing.Point(1182, 13);
this.btnManagement.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.btnManagement.Name = "btnManagement";
this.btnManagement.Size = new System.Drawing.Size(104, 30);
this.btnManagement.TabIndex = 1;
this.btnManagement.Text = "管理";
this.btnManagement.UseVisualStyleBackColor = true;
this.btnManagement.Click += new System.EventHandler(this.btnManagement_Click);
//
// tabControl1
//
this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.tabControl1.Controls.Add(this.tabPageLecture);
this.tabControl1.Controls.Add(this.tabPageMovie);
this.tabControl1.Location = new System.Drawing.Point(12, 13);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(186, 616);
this.tabControl1.TabIndex = 2;
//
// tabPageLecture
//
this.tabPageLecture.Controls.Add(this.treeLecture);
this.tabPageLecture.Location = new System.Drawing.Point(4, 26);
this.tabPageLecture.Name = "tabPageLecture";
this.tabPageLecture.Padding = new System.Windows.Forms.Padding(3);
this.tabPageLecture.Size = new System.Drawing.Size(178, 586);
this.tabPageLecture.TabIndex = 0;
this.tabPageLecture.Text = "讲座";
this.tabPageLecture.UseVisualStyleBackColor = true;
//
// treeLecture
//
this.treeLecture.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeLecture.Location = new System.Drawing.Point(3, 3);
this.treeLecture.Name = "treeLecture";
this.treeLecture.Size = new System.Drawing.Size(172, 580);
this.treeLecture.TabIndex = 0;
this.treeLecture.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView_NodeMouseClick);
//
// tabPageMovie
//
this.tabPageMovie.Controls.Add(this.treeMovie);
this.tabPageMovie.Location = new System.Drawing.Point(4, 26);
this.tabPageMovie.Name = "tabPageMovie";
this.tabPageMovie.Padding = new System.Windows.Forms.Padding(3);
this.tabPageMovie.Size = new System.Drawing.Size(178, 586);
this.tabPageMovie.TabIndex = 1;
this.tabPageMovie.Text = "电影";
this.tabPageMovie.UseVisualStyleBackColor = true;
//
// treeMovie
//
this.treeMovie.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeMovie.Location = new System.Drawing.Point(3, 3);
this.treeMovie.Name = "treeMovie";
this.treeMovie.Size = new System.Drawing.Size(172, 580);
this.treeMovie.TabIndex = 0;
this.treeMovie.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.treeView_NodeMouseClick);
//
// btnUpdate
//
this.btnUpdate.Location = new System.Drawing.Point(116, 13);
this.btnUpdate.Name = "btnUpdate";
this.btnUpdate.Size = new System.Drawing.Size(75, 23);
this.btnUpdate.TabIndex = 4;
this.btnUpdate.Text = "刷新";
this.btnUpdate.UseVisualStyleBackColor = true;
this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click);
//
// btnBooking
//
this.btnBooking.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.btnBooking.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btnBooking.ID = 0;
this.btnBooking.Location = new System.Drawing.Point(200, 51);
this.btnBooking.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.btnBooking.Name = "btnBooking";
this.btnBooking.Size = new System.Drawing.Size(1086, 578);
this.btnBooking.TabIndex = 3;
//
// FormMain
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(1298, 645);
this.Controls.Add(this.btnUpdate);
this.Controls.Add(this.btnBooking);
this.Controls.Add(this.tabControl1);
this.Controls.Add(this.btnManagement);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.MinimumSize = new System.Drawing.Size(700, 500);
this.Name = "FormMain";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "培优礼堂票务管理系统";
this.Load += new System.EventHandler(this.FormMain_Load);
this.tabControl1.ResumeLayout(false);
this.tabPageLecture.ResumeLayout(false);
this.tabPageMovie.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button btnManagement;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPageLecture;
private System.Windows.Forms.TreeView treeLecture;
private System.Windows.Forms.TabPage tabPageMovie;
private System.Windows.Forms.TreeView treeMovie;
private UserControls.UCBooking btnBooking;
private System.Windows.Forms.Button btnUpdate;
}
}

100
AuditoriumMS/FormMain.cs Normal file
View File

@ -0,0 +1,100 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void btnManagement_Click(object sender, EventArgs e)
{
Forms.FormAdminLogin form = new Forms.FormAdminLogin();
if (form.ShowDialog() == DialogResult.OK)
{
FormManageSystem formManageSystem = new FormManageSystem();
formManageSystem.ShowDialog();
}
}
private void FormMain_Load(object sender, EventArgs e)
{
UpdateAuditoriumInfo();
}
/// <summary>
/// 更新礼堂信息
/// </summary>
private void UpdateAuditoriumInfo()
{
try
{
treeLecture.Nodes.Clear();
treeMovie.Nodes.Clear();
DataTable dt = Access.obj.GetDataTable("SELECT ID,名称,开始时间,类型 FROM 礼堂表 WHERE 开始时间 > now() ORDER BY 开始时间");
// 遍历每一场
foreach (DataRow row in dt.Rows)
{
string nodeText = string.Format("{0} {1}",
Convert.ToDateTime(row["开始时间"]).ToString("HH:mm"),
row["名称"]);
TreeNode node = new TreeNode(nodeText);
node.Name = node.Text;
node.Tag = row["ID"];
DateTime startTime = Convert.ToDateTime(row["开始时间"]);
string DateKey = string.Format("{0} {1}", startTime.ToString("yyyy-MM-dd"), startTime.DayOfWeek);
// DateTime.Now.DayOfWeek
if (row["类型"].ToString() == "讲座")
{
// 如果没有这一场的日期,则添加一个日期节点
if (!treeLecture.Nodes.ContainsKey(DateKey))
{
TreeNode PNode = new TreeNode(DateKey);
PNode.Name = DateKey;
treeLecture.Nodes.Add(PNode);
}
treeLecture.Nodes[DateKey].Nodes.Add(node);
}
else
{
// 如果没有这一场的日期,则添加一个日期节点
if (!treeMovie.Nodes.ContainsKey(DateKey))
{
TreeNode PNode = new TreeNode(DateKey);
PNode.Name = DateKey;
treeMovie.Nodes.Add(PNode);
}
treeMovie.Nodes[DateKey].Nodes.Add(node);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
private void treeView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Node.Tag == null)
return;
this.btnBooking.ID = Convert.ToInt32(e.Node.Tag);
}
private void btnUpdate_Click(object sender, EventArgs e)
{
UpdateAuditoriumInfo();
}
}
}

120
AuditoriumMS/FormMain.resx Normal file
View File

@ -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>

232
AuditoriumMS/FormManageSystem.Designer.cs generated Normal file
View File

@ -0,0 +1,232 @@
namespace AuditoriumMS
{
partial class FormManageSystem
{
/// <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.menuStrip1 = new System.Windows.Forms.MenuStrip();
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.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.panelMain = new System.Windows.Forms.Panel();
this.menuStrip1.SuspendLayout();
this.SuspendLayout();
//
// menuStrip1
//
this.menuStrip1.Font = new System.Drawing.Font("微软雅黑", 9F);
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
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.Size = new System.Drawing.Size(884, 25);
this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1";
//
// 票务信息ToolStripMenuItem
//
this.ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.ToolStripMenuItem});
this.ToolStripMenuItem.Name = "票务信息ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(68, 21);
this.ToolStripMenuItem.Text = "票务信息";
//
// 新建ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "新建ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(100, 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});
this.ToolStripMenuItem.Name = "信息查询ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(68, 21);
this.ToolStripMenuItem.Text = "信息查询";
//
// 票务信息查询ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "票务信息查询ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(172, 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(172, 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(172, 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});
this.ToolStripMenuItem.Name = "信息统计ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(68, 21);
this.ToolStripMenuItem.Text = "信息统计";
//
// 票务信息统计ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "票务信息统计ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(148, 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(148, 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(148, 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.Name = "汇总报表ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(92, 21);
this.ToolStripMenuItem.Text = "班级汇总报表";
//
// 班级预订汇总ToolStripMenuItem
//
this.ToolStripMenuItem.Name = "班级预订汇总ToolStripMenuItem";
this.ToolStripMenuItem.Size = new System.Drawing.Size(124, 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(44, 21);
this.ToolStripMenuItem.Text = "设置";
//
// 修改密码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.Name = "退出登录ToolStripMenuItem";
this.退ToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.退ToolStripMenuItem.Text = "退出登录";
this.退ToolStripMenuItem.Click += new System.EventHandler(this.退ToolStripMenuItem_Click);
//
// panelMain
//
this.panelMain.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.panelMain.BackColor = System.Drawing.Color.White;
this.panelMain.Location = new System.Drawing.Point(0, 28);
this.panelMain.Name = "panelMain";
this.panelMain.Size = new System.Drawing.Size(884, 534);
this.panelMain.TabIndex = 1;
//
// FormManageSystem
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(884, 561);
this.Controls.Add(this.panelMain);
this.Controls.Add(this.menuStrip1);
this.Font = new System.Drawing.Font("微软雅黑", 9F);
this.MainMenuStrip = this.menuStrip1;
this.MinimumSize = new System.Drawing.Size(900, 600);
this.Name = "FormManageSystem";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "培优礼堂票务管理系统 - 管理模式";
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.MenuStrip menuStrip1;
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;
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.Panel panelMain;
private System.Windows.Forms.ToolStripMenuItem 退ToolStripMenuItem;
}
}

View File

@ -0,0 +1,79 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS
{
public partial class FormManageSystem : Form
{
public FormManageSystem()
{
InitializeComponent();
this.panelMain.Controls.Add(new UserControls.UCNewAuditorium { Dock = DockStyle.Fill });
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.panelMain.Controls.Clear();
this.panelMain.Controls.Add(new UserControls.UCNewAuditorium { Dock = DockStyle.Fill });
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.panelMain.Controls.Clear();
this.panelMain.Controls.Add(new UserControls.UCTicketSelect { Dock = DockStyle.Fill });
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.panelMain.Controls.Clear();
this.panelMain.Controls.Add(new UserControls.UCTicketCountSelect { Dock = DockStyle.Fill });
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.panelMain.Controls.Clear();
this.panelMain.Controls.Add(new UserControls.UCReservationInfoSelect { Dock = DockStyle.Fill });
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.panelMain.Controls.Clear();
this.panelMain.Controls.Add(new UserControls.UCTicketStatistics { Dock = DockStyle.Fill });
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.panelMain.Controls.Clear();
this.panelMain.Controls.Add(new UserControls.UCTicketCountStatistics { Dock = DockStyle.Fill });
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.panelMain.Controls.Clear();
this.panelMain.Controls.Add(new UserControls.UCShowChart { Dock = DockStyle.Fill });
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.panelMain.Controls.Clear();
this.panelMain.Controls.Add(new UserControls.UCSummaryReport { Dock = DockStyle.Fill });
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.panelMain.Controls.Clear();
this.panelMain.Controls.Add(new UserControls.UCModifyPassword { Dock = DockStyle.Fill });
}
private void 退ToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
}
}

View File

@ -0,0 +1,126 @@
<?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="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
</root>

View File

@ -0,0 +1,112 @@
namespace AuditoriumMS.Forms
{
partial class FormAdminLogin
{
/// <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.btnEnter = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.txtAdminPassword = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// btnEnter
//
this.btnEnter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.btnEnter.Location = new System.Drawing.Point(130, 212);
this.btnEnter.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.btnEnter.Name = "btnEnter";
this.btnEnter.Size = new System.Drawing.Size(214, 44);
this.btnEnter.TabIndex = 7;
this.btnEnter.Text = "进入管理模式";
this.btnEnter.UseVisualStyleBackColor = true;
this.btnEnter.Click += new System.EventHandler(this.btnEnter_Click);
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(90, 126);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(80, 17);
this.label2.TabIndex = 6;
this.label2.Text = "管理员密码:";
//
// label1
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.label1.Location = new System.Drawing.Point(30, 44);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(412, 27);
this.label1.TabIndex = 5;
this.label1.Text = "欢迎进入培优礼堂票务信息管理系统管理模式";
//
// txtAdminPassword
//
this.txtAdminPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtAdminPassword.Location = new System.Drawing.Point(176, 123);
this.txtAdminPassword.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.txtAdminPassword.Name = "txtAdminPassword";
this.txtAdminPassword.PasswordChar = '*';
this.txtAdminPassword.Size = new System.Drawing.Size(206, 23);
this.txtAdminPassword.TabIndex = 4;
//
// FormAdminLogin
//
this.AcceptButton = this.btnEnter;
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(472, 299);
this.Controls.Add(this.btnEnter);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.txtAdminPassword);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FormAdminLogin";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "管理员登录";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btnEnter;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox txtAdminPassword;
}
}

View File

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.Forms
{
public partial class FormAdminLogin : Form
{
public FormAdminLogin()
{
InitializeComponent();
}
private void btnEnter_Click(object sender, EventArgs e)
{
string password = txtAdminPassword.Text;
if (string.IsNullOrEmpty(password))
{
MessageBox.Show("请输入管理员密码!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
try
{
DataTable dt = Access.obj.GetDataTable("SELECT * FROM 管理员密码");
string adminPassword = dt.Rows[0][0].ToString();
if (password == adminPassword)
this.DialogResult = DialogResult.OK;
else
MessageBox.Show("密码错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
}
}

View File

@ -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>

113
AuditoriumMS/Forms/FormVerify.Designer.cs generated Normal file
View File

@ -0,0 +1,113 @@
namespace AuditoriumMS.Forms
{
partial class FormVerift
{
/// <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.txtNumber = new System.Windows.Forms.TextBox();
this.txtName = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.btnAccept = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// txtNumber
//
this.txtNumber.Location = new System.Drawing.Point(114, 72);
this.txtNumber.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.txtNumber.Name = "txtNumber";
this.txtNumber.Size = new System.Drawing.Size(152, 23);
this.txtNumber.TabIndex = 0;
//
// txtName
//
this.txtName.Location = new System.Drawing.Point(114, 115);
this.txtName.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.txtName.Name = "txtName";
this.txtName.Size = new System.Drawing.Size(152, 23);
this.txtName.TabIndex = 1;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(59, 76);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(44, 17);
this.label1.TabIndex = 2;
this.label1.Text = "学号:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(59, 119);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(44, 17);
this.label2.TabIndex = 2;
this.label2.Text = "姓名:";
//
// btnAccept
//
this.btnAccept.Location = new System.Drawing.Point(219, 189);
this.btnAccept.Name = "btnAccept";
this.btnAccept.Size = new System.Drawing.Size(102, 34);
this.btnAccept.TabIndex = 3;
this.btnAccept.Text = "确认";
this.btnAccept.UseVisualStyleBackColor = true;
this.btnAccept.Click += new System.EventHandler(this.btnAccept_Click);
//
// FormVerift
//
this.AcceptButton = this.btnAccept;
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(333, 235);
this.Controls.Add(this.btnAccept);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.txtName);
this.Controls.Add(this.txtNumber);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "FormVerift";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "学生身份验证";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox txtNumber;
private System.Windows.Forms.TextBox txtName;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button btnAccept;
}
}

View File

@ -0,0 +1,61 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.Forms
{
public partial class FormVerift : Form
{
public FormVerift()
{
InitializeComponent();
}
private void btnAccept_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.txtNumber.Text))
{
MessageBox.Show("请输入学号!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (string.IsNullOrEmpty(this.txtName.Text))
{
MessageBox.Show("请输入姓名!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
// SQL防注入
if (Access.IsHasSQLInject(this.txtNumber.Text)
|| Access.IsHasSQLInject(this.txtName.Text))
{
MessageBox.Show("格式错误!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string sql = string.Format("SELECT 1 FROM [学生表] WHERE [学号]={0} AND [姓名]='{1}'",
this.txtNumber.Text, this.txtName.Text);
try
{
DataTable dt = Access.obj.GetDataTable(sql);
if (dt == null || dt.Rows.Count < 1)
{
MessageBox.Show("无该学生!请输入正确的信息", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
// 用来返回购票学生学号
this.Tag = this.txtNumber.Text;
this.DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -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>

24
AuditoriumMS/Program.cs Normal file
View File

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace AuditoriumMS
{
static class Program
{
public const int AuditoriumSeatColumnsCount = 10;
public const int AuditoriumSeatRowsCount = 10;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormMain());
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("AuditoriumMS")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("AuditoriumMS")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("131a3e33-bcf0-4e9c-bf60-5f97ddb4fa75")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本: 4.0.30319.42000
//
// 对此文件的更改可能导致不正确的行为,如果
// 重新生成代码,则所做更改将丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace AuditoriumMS.Properties
{
/// <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 ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AuditoriumMS.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;
}
}
}
}

View File

@ -0,0 +1,117 @@
<?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.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: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" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace AuditoriumMS.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;
}
}
}
}

View File

@ -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>

View File

@ -0,0 +1,261 @@
namespace AuditoriumMS.UserControls
{
partial class UCBooking
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.ucSeatMap1 = new AuditoriumMS.UserControls.UCSeatMap();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.lblTitle = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.lblDate = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.lblPrice = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.lblTime = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.lblTotal = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.lblRemaining = new System.Windows.Forms.Label();
this.lblPrompt = new System.Windows.Forms.Label();
this.btnBooking = new System.Windows.Forms.Button();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
//
// ucSeatMap1
//
this.ucSeatMap1.Dock = System.Windows.Forms.DockStyle.Fill;
this.ucSeatMap1.Location = new System.Drawing.Point(3, 19);
this.ucSeatMap1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.ucSeatMap1.MinimumSize = new System.Drawing.Size(200, 100);
this.ucSeatMap1.Name = "ucSeatMap1";
this.ucSeatMap1.Size = new System.Drawing.Size(641, 213);
this.ucSeatMap1.TabIndex = 0;
//
// groupBox1
//
this.groupBox1.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.groupBox1.Controls.Add(this.ucSeatMap1);
this.groupBox1.Location = new System.Drawing.Point(3, 256);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(647, 235);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "座位分布图";
//
// lblTitle
//
this.lblTitle.AutoSize = true;
this.lblTitle.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.lblTitle.Location = new System.Drawing.Point(46, 28);
this.lblTitle.Name = "lblTitle";
this.lblTitle.Size = new System.Drawing.Size(110, 31);
this.lblTitle.TabIndex = 2;
this.lblTitle.Text = "名家礼堂";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label2.Location = new System.Drawing.Point(48, 82);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(58, 21);
this.label2.TabIndex = 3;
this.label2.Text = "日期:";
//
// lblDate
//
this.lblDate.AutoSize = true;
this.lblDate.Font = new System.Drawing.Font("微软雅黑", 12F);
this.lblDate.Location = new System.Drawing.Point(112, 82);
this.lblDate.Name = "lblDate";
this.lblDate.Size = new System.Drawing.Size(0, 21);
this.lblDate.TabIndex = 4;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label4.Location = new System.Drawing.Point(48, 144);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(58, 21);
this.label4.TabIndex = 5;
this.label4.Text = "票价:";
//
// lblPrice
//
this.lblPrice.AutoSize = true;
this.lblPrice.Font = new System.Drawing.Font("微软雅黑", 12F);
this.lblPrice.Location = new System.Drawing.Point(112, 144);
this.lblPrice.Name = "lblPrice";
this.lblPrice.Size = new System.Drawing.Size(0, 21);
this.lblPrice.TabIndex = 6;
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label6.Location = new System.Drawing.Point(48, 113);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(58, 21);
this.label6.TabIndex = 3;
this.label6.Text = "时间:";
//
// lblTime
//
this.lblTime.AutoSize = true;
this.lblTime.Font = new System.Drawing.Font("微软雅黑", 12F);
this.lblTime.Location = new System.Drawing.Point(112, 113);
this.lblTime.Name = "lblTime";
this.lblTime.Size = new System.Drawing.Size(0, 21);
this.lblTime.TabIndex = 4;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label8.Location = new System.Drawing.Point(32, 175);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(74, 21);
this.label8.TabIndex = 5;
this.label8.Text = "总票数:";
//
// lblTotal
//
this.lblTotal.AutoSize = true;
this.lblTotal.Font = new System.Drawing.Font("微软雅黑", 12F);
this.lblTotal.Location = new System.Drawing.Point(112, 175);
this.lblTotal.Name = "lblTotal";
this.lblTotal.Size = new System.Drawing.Size(0, 21);
this.lblTotal.TabIndex = 6;
//
// label10
//
this.label10.AutoSize = true;
this.label10.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label10.Location = new System.Drawing.Point(16, 206);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(90, 21);
this.label10.TabIndex = 5;
this.label10.Text = "剩余票数:";
//
// lblRemaining
//
this.lblRemaining.AutoSize = true;
this.lblRemaining.Font = new System.Drawing.Font("微软雅黑", 12F);
this.lblRemaining.Location = new System.Drawing.Point(112, 206);
this.lblRemaining.Name = "lblRemaining";
this.lblRemaining.Size = new System.Drawing.Size(0, 21);
this.lblRemaining.TabIndex = 6;
//
// lblPrompt
//
this.lblPrompt.AutoSize = true;
this.lblPrompt.ForeColor = System.Drawing.Color.Red;
this.lblPrompt.Location = new System.Drawing.Point(174, 148);
this.lblPrompt.Name = "lblPrompt";
this.lblPrompt.Size = new System.Drawing.Size(260, 17);
this.lblPrompt.TabIndex = 6;
this.lblPrompt.Text = "请注意:该场为校园内部观看,采取实名制订票";
this.lblPrompt.Visible = false;
//
// btnBooking
//
this.btnBooking.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnBooking.Location = new System.Drawing.Point(485, 159);
this.btnBooking.Name = "btnBooking";
this.btnBooking.Size = new System.Drawing.Size(150, 72);
this.btnBooking.TabIndex = 7;
this.btnBooking.Text = "订票";
this.btnBooking.UseVisualStyleBackColor = true;
this.btnBooking.Click += new System.EventHandler(this.btnBooking_Click);
//
// groupBox2
//
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox2.Controls.Add(this.lblTitle);
this.groupBox2.Controls.Add(this.btnBooking);
this.groupBox2.Controls.Add(this.label2);
this.groupBox2.Controls.Add(this.lblPrompt);
this.groupBox2.Controls.Add(this.label6);
this.groupBox2.Controls.Add(this.lblRemaining);
this.groupBox2.Controls.Add(this.lblDate);
this.groupBox2.Controls.Add(this.lblTotal);
this.groupBox2.Controls.Add(this.lblTime);
this.groupBox2.Controls.Add(this.lblPrice);
this.groupBox2.Controls.Add(this.label4);
this.groupBox2.Controls.Add(this.label10);
this.groupBox2.Controls.Add(this.label8);
this.groupBox2.Location = new System.Drawing.Point(6, 13);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(641, 237);
this.groupBox2.TabIndex = 8;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "场次信息";
//
// UCBooking
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCBooking";
this.Size = new System.Drawing.Size(653, 494);
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private UCSeatMap ucSeatMap1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label lblTitle;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label lblDate;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label lblPrice;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label lblTime;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label lblTotal;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label lblRemaining;
private System.Windows.Forms.Label lblPrompt;
private System.Windows.Forms.Button btnBooking;
private System.Windows.Forms.GroupBox groupBox2;
}
}

View File

@ -0,0 +1,295 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCBooking : UserControl
{
public UCBooking()
{
InitializeComponent();
// 座位被选中事件
this.ucSeatMap1.SelectedEvent += UcSeatMap1_SelectedEvent;
}
private void UcSeatMap1_SelectedEvent(object sender, Point point)
{
if (this.ID == 0)
return;
Booking(point);
}
#region
private int _ID;
public int ID
{
set
{
_ID = value;
this.UpdateInfo(value);
}
get
{
return _ID;
}
}
private string Title
{
get
{
return this.lblTitle.Text;
}
set
{
this.lblTitle.Text = value;
}
}
private DateTime _startTIme;
private DateTime StartTIme
{
get
{
return _startTIme;
}
set
{
_startTIme = value;
this.lblDate.Text = string.Format("{0} {1}",
value.ToString("yyyy-MM-dd"),
value.DayOfWeek);
this.lblTime.Text = value.ToString("HH:mm");
}
}
private string _type;
private string Type
{
get
{
return _type;
}
set
{
_type = value;
}
}
private int _price;
private int Price
{
get
{
return _price;
}
set
{
_price = value;
if (value == 0)
{
this.lblPrice.Text = "免费";
this.lblPrompt.Visible = true;
}
else
{
this.lblPrice.Text = string.Format("{0}元", value);
this.lblPrompt.Visible = false;
}
}
}
private int _total;
private int Total
{
get
{
return _total;
}
set
{
_total = value;
this.lblTotal.Text = value.ToString();
}
}
private int _count;
private int Count
{
get
{
return _count;
}
set
{
_count = value;
this.lblRemaining.Text = (Total - value).ToString();
}
}
#endregion
private bool[,] seatMap;
/// <summary>
/// 更新显示信息
/// </summary>
/// <param name="id">场次ID</param>
private void UpdateInfo(int id)
{
if (id == 0) return;
try
{
string sql = string.Format("SELECT * FROM 礼堂表 WHERE ID={0}", id);
DataTable dt = Access.obj.GetDataTable(sql);
if (dt == null || dt.Rows.Count < 1)
{
MessageBox.Show("未获取到数据!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
this.Title = dt.Rows[0]["名称"].ToString();
this.StartTIme = Convert.ToDateTime(dt.Rows[0]["开始时间"]);
this.Price = Convert.ToInt32(dt.Rows[0]["票价"]);
this.Type = dt.Rows[0]["类型"].ToString();
this.Total = Convert.ToInt32(dt.Rows[0]["票数"]);
sql = string.Format("SELECT 排,列 FROM 票务表 WHERE 礼堂ID={0}", id);
DataTable seatDT = Access.obj.GetDataTable(sql);
this.seatMap = new bool[Program.AuditoriumSeatRowsCount, Program.AuditoriumSeatColumnsCount];
for (int i = 0; i < Program.AuditoriumSeatRowsCount; ++i)
for (int j = 0; j < Program.AuditoriumSeatColumnsCount; ++j)
seatMap[i,j] = false;
this.Count = seatDT.Rows.Count;
List <Point> seatList = new List<Point>();
foreach (DataRow row in seatDT.Rows)
{
Point p = new Point(Convert.ToInt32(row["排"]), Convert.ToInt32(row["列"]));
seatMap[p.X - 1, p.Y - 1] = true;
seatList.Add(p);
}
this.ucSeatMap1.SetValue(seatList, Convert.ToInt32(dt.Rows[0]["票数"]));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private bool Booking(Point point)
{
if (point.X == 0)
return false;
int id = 0;
// 免费为对校内开放,需要提供实名认证
if (this.Price == 0)
{
Forms.FormVerift formVerift = new Forms.FormVerift();
if (formVerift.ShowDialog() == DialogResult.OK)
{
id = Convert.ToInt32(formVerift.Tag);
string sql = string.Format("SELECT 排,列,购票时间 FROM 票务表 WHERE 购买者ID={0} AND 礼堂ID={1}",
id, this.ID);
try
{
DataTable dt = Access.obj.GetDataTable(sql);
if (dt != null && dt.Rows.Count > 0)
{
MessageBox.Show(string.Format("你在{0}已经买过本场的票,座位号:{1:00}-{2:00}",
Convert.ToDateTime(dt.Rows[0]["购票时间"]).ToString("yyyy-MM-dd HH:mm"),
dt.Rows[0]["排"], dt.Rows[0]["列"]), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
else
{
return false;
}
}
InsertTicketInfo(point, id);
UpdateInfo(this.ID);
// 每张票上的信息包括日期(年、月、日)、星期、时间(时、分)、排、号、类型、票价、编号,以及“名家礼堂”这一固定名称。
MessageBox.Show(string.Format("订票成功,座位号为:{0:00}-{1:00}", point.X, point.Y), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
PrintTicket(point);
return true;
}
/// <summary>
/// 打印票据
/// </summary>
/// <param name="point">座位坐标</param>
private void PrintTicket(Point point)
{
SaveFileDialog save = new SaveFileDialog();
save.Filter = "票据文件|*.txt";
if (MessageBox.Show("请问是否打印票据信息?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
return;
if (save.ShowDialog() != DialogResult.OK)
return;
string savePath = save.FileName;
using (System.IO.FileStream file = new System.IO.FileStream(savePath, System.IO.FileMode.Create, System.IO.FileAccess.Write))
{
using (System.IO.TextWriter text = new System.IO.StreamWriter(file, System.Text.Encoding.Default))
{
text.Write(string.Format("日期:{0}\t星期{1}\t时间{2}\t排{3}\t号{4}\t类型{5}\t票价{6}\t编号{7}\t名称{8}",
this.StartTIme.ToShortDateString(), this.StartTIme.DayOfWeek, this.StartTIme.ToShortTimeString(),
point.X, point.Y, this.Type, this.Price, this.ID, this.Title));
}
}
}
/// <summary>
/// 插入票据信息
/// </summary>
/// <param name="p">座位</param>
/// <param name="id">购买者ID外来人为0</param>
private void InsertTicketInfo(Point p, int id)
{
string sql = string.Format("INSERT INTO 票务表(排,列,礼堂ID,购买者ID) VALUES({0}, {1}, {2}, {3})", p.X, p.Y, this.ID, id);
try
{
int n = Access.obj.Execute(sql);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
/// <summary>
/// 寻找空座位
/// </summary>
/// <returns>空位坐标</returns>
private Point FindVacancy()
{
for (int i = 0; i < Program.AuditoriumSeatRowsCount; ++i)
for (int j = 0; j < Program.AuditoriumSeatColumnsCount; ++j)
if (this.seatMap[i, j] == false)
return new Point(i + 1, j + 1);
return new Point(0, 0);
}
private void btnBooking_Click(object sender, EventArgs e)
{
if (this.ID == 0)
return;
if (this.Count == this.Total)
{
MessageBox.Show("没有余票", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Booking(FindVacancy());
}
}
}

View File

@ -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>

View File

@ -0,0 +1,152 @@
namespace AuditoriumMS.UserControls
{
partial class UCModifyPassword
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.txtOldPassword = new System.Windows.Forms.TextBox();
this.txtNewPassword = new System.Windows.Forms.TextBox();
this.txtNewPassword1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnAccept = new System.Windows.Forms.Button();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// txtOldPassword
//
this.txtOldPassword.Location = new System.Drawing.Point(191, 116);
this.txtOldPassword.Name = "txtOldPassword";
this.txtOldPassword.PasswordChar = '*';
this.txtOldPassword.Size = new System.Drawing.Size(189, 34);
this.txtOldPassword.TabIndex = 0;
//
// txtNewPassword
//
this.txtNewPassword.Location = new System.Drawing.Point(191, 156);
this.txtNewPassword.Name = "txtNewPassword";
this.txtNewPassword.PasswordChar = '*';
this.txtNewPassword.Size = new System.Drawing.Size(189, 34);
this.txtNewPassword.TabIndex = 0;
//
// txtNewPassword1
//
this.txtNewPassword1.Location = new System.Drawing.Point(191, 196);
this.txtNewPassword1.Name = "txtNewPassword1";
this.txtNewPassword1.PasswordChar = '*';
this.txtNewPassword1.Size = new System.Drawing.Size(189, 34);
this.txtNewPassword1.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 13F);
this.label1.Location = new System.Drawing.Point(121, 122);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(64, 24);
this.label1.TabIndex = 1;
this.label1.Text = "旧密码";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 13F);
this.label2.Location = new System.Drawing.Point(121, 162);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(64, 24);
this.label2.TabIndex = 2;
this.label2.Text = "新密码";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("微软雅黑", 13F);
this.label3.Location = new System.Drawing.Point(85, 202);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(100, 24);
this.label3.TabIndex = 2;
this.label3.Text = "确认新密码";
//
// groupBox1
//
this.groupBox1.Anchor = System.Windows.Forms.AnchorStyles.None;
this.groupBox1.Controls.Add(this.btnAccept);
this.groupBox1.Controls.Add(this.txtOldPassword);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.txtNewPassword1);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.txtNewPassword);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Font = new System.Drawing.Font("微软雅黑", 15F, System.Drawing.FontStyle.Bold);
this.groupBox1.Location = new System.Drawing.Point(183, 106);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(518, 323);
this.groupBox1.TabIndex = 3;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "修改密码";
//
// btnAccept
//
this.btnAccept.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnAccept.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold);
this.btnAccept.Location = new System.Drawing.Point(385, 266);
this.btnAccept.Name = "btnAccept";
this.btnAccept.Size = new System.Drawing.Size(115, 38);
this.btnAccept.TabIndex = 3;
this.btnAccept.Text = "确认";
this.btnAccept.UseVisualStyleBackColor = true;
this.btnAccept.Click += new System.EventHandler(this.btnAccept_Click);
//
// UCModifyPassword
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCModifyPassword";
this.Size = new System.Drawing.Size(884, 534);
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TextBox txtOldPassword;
private System.Windows.Forms.TextBox txtNewPassword;
private System.Windows.Forms.TextBox txtNewPassword1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Button btnAccept;
}
}

View File

@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCModifyPassword : UserControl
{
public UCModifyPassword()
{
InitializeComponent();
}
private void btnAccept_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.txtOldPassword.Text)
|| string.IsNullOrEmpty(this.txtNewPassword.Text)
|| string.IsNullOrEmpty(this.txtNewPassword1.Text))
{
MessageBox.Show("不能为空!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (Access.IsHasSQLInject(this.txtOldPassword.Text)
|| Access.IsHasSQLInject(this.txtNewPassword.Text)
|| Access.IsHasSQLInject(this.txtNewPassword1.Text))
{
MessageBox.Show("禁止输入非法字符!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (this.txtNewPassword.Text != this.txtNewPassword1.Text)
{
MessageBox.Show("两次密码不相同!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string sql = string.Format("UPDATE 管理员密码 SET [密码]='{0}' WHERE [密码]='{1}'",
this.txtNewPassword.Text, this.txtOldPassword.Text);
try
{
int n = Access.obj.Execute(sql);
if (n == 0)
{
MessageBox.Show("旧密码错误,修改失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else
{
this.txtNewPassword.Text = "";
this.txtNewPassword1.Text = "";
this.txtOldPassword.Text = "";
MessageBox.Show("密码修改成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -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>

View File

@ -0,0 +1,359 @@
namespace AuditoriumMS.UserControls
{
partial class UCNewAuditorium
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.DTPStartTIme = new System.Windows.Forms.DateTimePicker();
this.cmbType = new System.Windows.Forms.ComboBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.btnNew = new System.Windows.Forms.Button();
this.label6 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.NUDNumber = new System.Windows.Forms.NumericUpDown();
this.NUDPrice = new System.Windows.Forms.NumericUpDown();
this.NUDHour = new System.Windows.Forms.NumericUpDown();
this.NUDMinute = new System.Windows.Forms.NumericUpDown();
this.label9 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label12 = new System.Windows.Forms.Label();
this.txtTitle = new System.Windows.Forms.TextBox();
((System.ComponentModel.ISupportInitialize)(this.NUDNumber)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDPrice)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDHour)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDMinute)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label1.Location = new System.Drawing.Point(86, 156);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(74, 21);
this.label1.TabIndex = 0;
this.label1.Text = "总票数:";
//
// DTPStartTIme
//
this.DTPStartTIme.Location = new System.Drawing.Point(166, 218);
this.DTPStartTIme.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.DTPStartTIme.Name = "DTPStartTIme";
this.DTPStartTIme.Size = new System.Drawing.Size(180, 23);
this.DTPStartTIme.TabIndex = 3;
//
// cmbType
//
this.cmbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbType.FormattingEnabled = true;
this.cmbType.Items.AddRange(new object[] {
"讲座",
"电影"});
this.cmbType.Location = new System.Drawing.Point(166, 282);
this.cmbType.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.cmbType.Name = "cmbType";
this.cmbType.Size = new System.Drawing.Size(180, 25);
this.cmbType.TabIndex = 4;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label2.Location = new System.Drawing.Point(70, 219);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(90, 21);
this.label2.TabIndex = 0;
this.label2.Text = "开始日期:";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label3.Location = new System.Drawing.Point(102, 281);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(58, 21);
this.label3.TabIndex = 0;
this.label3.Text = "类型:";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label4.Location = new System.Drawing.Point(102, 186);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(58, 21);
this.label4.TabIndex = 0;
this.label4.Text = "票价:";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label5.Location = new System.Drawing.Point(128, 59);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(158, 31);
this.label5.TabIndex = 0;
this.label5.Text = "新建票务信息";
//
// btnNew
//
this.btnNew.Font = new System.Drawing.Font("微软雅黑", 12F);
this.btnNew.Location = new System.Drawing.Point(117, 335);
this.btnNew.Name = "btnNew";
this.btnNew.Size = new System.Drawing.Size(180, 44);
this.btnNew.TabIndex = 5;
this.btnNew.Text = "新建";
this.btnNew.UseVisualStyleBackColor = true;
this.btnNew.Click += new System.EventHandler(this.btnNew_Click);
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label6.Location = new System.Drawing.Point(70, 250);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(90, 21);
this.label6.TabIndex = 0;
this.label6.Text = "开始时间:";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label7.Location = new System.Drawing.Point(226, 250);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(26, 21);
this.label7.TabIndex = 0;
this.label7.Text = "时";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label8.Location = new System.Drawing.Point(318, 250);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(26, 21);
this.label8.TabIndex = 0;
this.label8.Text = "分";
//
// NUDNumber
//
this.NUDNumber.Location = new System.Drawing.Point(166, 155);
this.NUDNumber.Maximum = new decimal(new int[] {
200,
0,
0,
0});
this.NUDNumber.Minimum = new decimal(new int[] {
1,
0,
0,
0});
this.NUDNumber.Name = "NUDNumber";
this.NUDNumber.Size = new System.Drawing.Size(146, 23);
this.NUDNumber.TabIndex = 6;
this.NUDNumber.Value = new decimal(new int[] {
200,
0,
0,
0});
//
// NUDPrice
//
this.NUDPrice.Location = new System.Drawing.Point(166, 186);
this.NUDPrice.Maximum = new decimal(new int[] {
1000,
0,
0,
0});
this.NUDPrice.Name = "NUDPrice";
this.NUDPrice.Size = new System.Drawing.Size(146, 23);
this.NUDPrice.TabIndex = 6;
//
// NUDHour
//
this.NUDHour.Location = new System.Drawing.Point(167, 249);
this.NUDHour.Maximum = new decimal(new int[] {
24,
0,
0,
0});
this.NUDHour.Name = "NUDHour";
this.NUDHour.Size = new System.Drawing.Size(53, 23);
this.NUDHour.TabIndex = 6;
this.NUDHour.Value = new decimal(new int[] {
14,
0,
0,
0});
//
// NUDMinute
//
this.NUDMinute.Location = new System.Drawing.Point(259, 249);
this.NUDMinute.Maximum = new decimal(new int[] {
60,
0,
0,
0});
this.NUDMinute.Name = "NUDMinute";
this.NUDMinute.Size = new System.Drawing.Size(53, 23);
this.NUDMinute.TabIndex = 6;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label9.Location = new System.Drawing.Point(318, 185);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(26, 21);
this.label9.TabIndex = 0;
this.label9.Text = "元";
//
// label10
//
this.label10.AutoSize = true;
this.label10.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label10.Location = new System.Drawing.Point(318, 155);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(26, 21);
this.label10.TabIndex = 0;
this.label10.Text = "张";
//
// label11
//
this.label11.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.label11.AutoSize = true;
this.label11.Font = new System.Drawing.Font("微软雅黑", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label11.ForeColor = System.Drawing.Color.Red;
this.label11.Location = new System.Drawing.Point(527, 0);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(354, 22);
this.label11.TabIndex = 0;
this.label11.Text = "*对内开放不收费,对外开放收费且不使用实名制";
//
// groupBox1
//
this.groupBox1.Anchor = System.Windows.Forms.AnchorStyles.None;
this.groupBox1.Controls.Add(this.txtTitle);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.NUDMinute);
this.groupBox1.Controls.Add(this.label12);
this.groupBox1.Controls.Add(this.label1);
this.groupBox1.Controls.Add(this.NUDHour);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.NUDPrice);
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.NUDNumber);
this.groupBox1.Controls.Add(this.label7);
this.groupBox1.Controls.Add(this.btnNew);
this.groupBox1.Controls.Add(this.label4);
this.groupBox1.Controls.Add(this.cmbType);
this.groupBox1.Controls.Add(this.label9);
this.groupBox1.Controls.Add(this.DTPStartTIme);
this.groupBox1.Controls.Add(this.label10);
this.groupBox1.Controls.Add(this.label3);
this.groupBox1.Controls.Add(this.label8);
this.groupBox1.Location = new System.Drawing.Point(235, 61);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(415, 412);
this.groupBox1.TabIndex = 7;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "信息录入";
//
// label12
//
this.label12.AutoSize = true;
this.label12.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label12.Location = new System.Drawing.Point(102, 128);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(58, 21);
this.label12.TabIndex = 0;
this.label12.Text = "名称:";
//
// txtTitle
//
this.txtTitle.Location = new System.Drawing.Point(166, 126);
this.txtTitle.Name = "txtTitle";
this.txtTitle.Size = new System.Drawing.Size(146, 23);
this.txtTitle.TabIndex = 7;
this.txtTitle.Text = "名家礼堂";
//
// UCNewAuditorium
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.label11);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCNewAuditorium";
this.Size = new System.Drawing.Size(884, 534);
this.Load += new System.EventHandler(this.UCNewAuditorium_Load);
((System.ComponentModel.ISupportInitialize)(this.NUDNumber)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDPrice)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDHour)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDMinute)).EndInit();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.DateTimePicker DTPStartTIme;
private System.Windows.Forms.ComboBox cmbType;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Button btnNew;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.NumericUpDown NUDNumber;
private System.Windows.Forms.NumericUpDown NUDPrice;
private System.Windows.Forms.NumericUpDown NUDHour;
private System.Windows.Forms.NumericUpDown NUDMinute;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.TextBox txtTitle;
private System.Windows.Forms.Label label12;
}
}

View File

@ -0,0 +1,79 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCNewAuditorium : UserControl
{
public UCNewAuditorium()
{
InitializeComponent();
}
private void btnNew_Click(object sender, EventArgs e)
{
int totalNumber = 0;
int price = 0;
string aType = "";
DateTime startTIme;
try
{
totalNumber = (int)this.NUDNumber.Value;
price = (int)this.NUDPrice.Value;
startTIme = this.DTPStartTIme.Value.Date;
startTIme = startTIme.AddHours((int)this.NUDHour.Value);
startTIme = startTIme.AddMinutes((int)this.NUDMinute.Value);
aType = this.cmbType.Text;
if (string.IsNullOrEmpty(txtTitle.Text))
{
MessageBox.Show("名称不能为空!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (Access.IsHasSQLInject(txtTitle.Text))
{
MessageBox.Show("名称禁止输入非法字符!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (startTIme < DateTime.Now)
{
MessageBox.Show("请选择正确的开始时间!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (string.IsNullOrEmpty(aType))
{
MessageBox.Show("请选择类型!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
string SQL = string.Format("INSERT INTO 礼堂表(名称,开始时间,类型,票价,票数) VALUES('{0}','{1}','{2}',{3},{4})", txtTitle.Text, startTIme, aType, price, totalNumber);
int n = Access.obj.Execute(SQL);
if (n == 1)
{
MessageBox.Show("新建成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("新建失败!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch (Exception ex)
{
MessageBox.Show("处理数据出错,请输入正确的数据!\n错误信息" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
private void UCNewAuditorium_Load(object sender, EventArgs e)
{
this.cmbType.SelectedIndex = 0;
this.NUDNumber.Maximum = Program.AuditoriumSeatColumnsCount * Program.AuditoriumSeatRowsCount;
}
}
}

View File

@ -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>

View File

@ -0,0 +1,390 @@
namespace AuditoriumMS.UserControls
{
partial class UCReservationInfoSelect
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.NUDEndMinute = new System.Windows.Forms.NumericUpDown();
this.NUDBeginMinute = new System.Windows.Forms.NumericUpDown();
this.NUDEndHour = new System.Windows.Forms.NumericUpDown();
this.NUDBeginHour = new System.Windows.Forms.NumericUpDown();
this.DTPEndDate = new System.Windows.Forms.DateTimePicker();
this.label5 = new System.Windows.Forms.Label();
this.DTPBeginDate = new System.Windows.Forms.DateTimePicker();
this.label4 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.txtNumber = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.label11 = new System.Windows.Forms.Label();
this.txtName = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.txtClass = new System.Windows.Forms.TextBox();
this.btnSelect = new System.Windows.Forms.Button();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
((System.ComponentModel.ISupportInitialize)(this.NUDEndMinute)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginMinute)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndHour)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginHour)).BeginInit();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout();
//
// NUDEndMinute
//
this.NUDEndMinute.Location = new System.Drawing.Point(416, 51);
this.NUDEndMinute.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.NUDEndMinute.Maximum = new decimal(new int[] {
60,
0,
0,
0});
this.NUDEndMinute.Name = "NUDEndMinute";
this.NUDEndMinute.Size = new System.Drawing.Size(38, 23);
this.NUDEndMinute.TabIndex = 25;
//
// NUDBeginMinute
//
this.NUDBeginMinute.Location = new System.Drawing.Point(148, 51);
this.NUDBeginMinute.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.NUDBeginMinute.Maximum = new decimal(new int[] {
60,
0,
0,
0});
this.NUDBeginMinute.Name = "NUDBeginMinute";
this.NUDBeginMinute.Size = new System.Drawing.Size(40, 23);
this.NUDBeginMinute.TabIndex = 26;
//
// NUDEndHour
//
this.NUDEndHour.Location = new System.Drawing.Point(347, 51);
this.NUDEndHour.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.NUDEndHour.Maximum = new decimal(new int[] {
24,
0,
0,
0});
this.NUDEndHour.Name = "NUDEndHour";
this.NUDEndHour.Size = new System.Drawing.Size(38, 23);
this.NUDEndHour.TabIndex = 27;
this.NUDEndHour.Value = new decimal(new int[] {
14,
0,
0,
0});
//
// NUDBeginHour
//
this.NUDBeginHour.Location = new System.Drawing.Point(82, 51);
this.NUDBeginHour.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.NUDBeginHour.Maximum = new decimal(new int[] {
24,
0,
0,
0});
this.NUDBeginHour.Name = "NUDBeginHour";
this.NUDBeginHour.Size = new System.Drawing.Size(38, 23);
this.NUDBeginHour.TabIndex = 28;
this.NUDBeginHour.Value = new decimal(new int[] {
14,
0,
0,
0});
//
// DTPEndDate
//
this.DTPEndDate.Location = new System.Drawing.Point(346, 17);
this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPEndDate.Name = "DTPEndDate";
this.DTPEndDate.Size = new System.Drawing.Size(130, 23);
this.DTPEndDate.TabIndex = 23;
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label5.Location = new System.Drawing.Point(457, 52);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(23, 20);
this.label5.TabIndex = 14;
this.label5.Text = "分";
//
// DTPBeginDate
//
this.DTPBeginDate.Location = new System.Drawing.Point(81, 17);
this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPBeginDate.Name = "DTPBeginDate";
this.DTPBeginDate.Size = new System.Drawing.Size(130, 23);
this.DTPBeginDate.TabIndex = 24;
//
// label4
//
this.label4.AutoSize = true;
this.label4.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label4.Location = new System.Drawing.Point(386, 52);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(23, 20);
this.label4.TabIndex = 16;
this.label4.Text = "时";
//
// label8
//
this.label8.AutoSize = true;
this.label8.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label8.Location = new System.Drawing.Point(194, 52);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(23, 20);
this.label8.TabIndex = 15;
this.label8.Text = "分";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label3.Location = new System.Drawing.Point(275, 52);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(79, 20);
this.label3.TabIndex = 18;
this.label3.Text = "结束时间:";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label7.Location = new System.Drawing.Point(123, 52);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(23, 20);
this.label7.TabIndex = 17;
this.label7.Text = "时";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label1.Location = new System.Drawing.Point(275, 17);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(79, 20);
this.label1.TabIndex = 21;
this.label1.Text = "结束日期:";
//
// label9
//
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label9.Location = new System.Drawing.Point(211, 31);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(68, 21);
this.label9.TabIndex = 19;
this.label9.Text = "<——>";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label6.Location = new System.Drawing.Point(10, 52);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(79, 20);
this.label6.TabIndex = 20;
this.label6.Text = "起始时间:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label2.Location = new System.Drawing.Point(10, 18);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(79, 20);
this.label2.TabIndex = 22;
this.label2.Text = "起始日期:";
//
// txtNumber
//
this.txtNumber.Location = new System.Drawing.Point(527, 16);
this.txtNumber.Name = "txtNumber";
this.txtNumber.Size = new System.Drawing.Size(147, 23);
this.txtNumber.TabIndex = 29;
//
// label10
//
this.label10.AutoSize = true;
this.label10.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label10.Location = new System.Drawing.Point(483, 17);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(51, 20);
this.label10.TabIndex = 18;
this.label10.Text = "学号:";
//
// label11
//
this.label11.AutoSize = true;
this.label11.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label11.Location = new System.Drawing.Point(695, 17);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(51, 20);
this.label11.TabIndex = 18;
this.label11.Text = "姓名:";
//
// txtName
//
this.txtName.Location = new System.Drawing.Point(740, 16);
this.txtName.Name = "txtName";
this.txtName.Size = new System.Drawing.Size(124, 23);
this.txtName.TabIndex = 29;
//
// label12
//
this.label12.AutoSize = true;
this.label12.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label12.Location = new System.Drawing.Point(482, 53);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(51, 20);
this.label12.TabIndex = 18;
this.label12.Text = "班级:";
//
// txtClass
//
this.txtClass.Location = new System.Drawing.Point(527, 52);
this.txtClass.Name = "txtClass";
this.txtClass.Size = new System.Drawing.Size(147, 23);
this.txtClass.TabIndex = 29;
//
// btnSelect
//
this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSelect.Location = new System.Drawing.Point(760, 44);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(104, 38);
this.btnSelect.TabIndex = 30;
this.btnSelect.Text = "查询";
this.btnSelect.UseVisualStyleBackColor = true;
this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
//
// groupBox1
//
this.groupBox1.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.groupBox1.Controls.Add(this.dataGridView1);
this.groupBox1.Location = new System.Drawing.Point(3, 81);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(878, 450);
this.groupBox1.TabIndex = 31;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "查询结果";
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.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.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(6, 22);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.Size = new System.Drawing.Size(866, 422);
this.dataGridView1.TabIndex = 0;
//
// UCReservationInfoSelect
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.btnSelect);
this.Controls.Add(this.txtClass);
this.Controls.Add(this.txtName);
this.Controls.Add(this.txtNumber);
this.Controls.Add(this.NUDEndMinute);
this.Controls.Add(this.NUDBeginMinute);
this.Controls.Add(this.NUDEndHour);
this.Controls.Add(this.NUDBeginHour);
this.Controls.Add(this.DTPEndDate);
this.Controls.Add(this.label5);
this.Controls.Add(this.DTPBeginDate);
this.Controls.Add(this.label12);
this.Controls.Add(this.label4);
this.Controls.Add(this.label11);
this.Controls.Add(this.label8);
this.Controls.Add(this.label10);
this.Controls.Add(this.label3);
this.Controls.Add(this.label7);
this.Controls.Add(this.label1);
this.Controls.Add(this.label9);
this.Controls.Add(this.label6);
this.Controls.Add(this.label2);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCReservationInfoSelect";
this.Size = new System.Drawing.Size(884, 534);
((System.ComponentModel.ISupportInitialize)(this.NUDEndMinute)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginMinute)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndHour)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginHour)).EndInit();
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.NumericUpDown NUDEndMinute;
private System.Windows.Forms.NumericUpDown NUDBeginMinute;
private System.Windows.Forms.NumericUpDown NUDEndHour;
private System.Windows.Forms.NumericUpDown NUDBeginHour;
private System.Windows.Forms.DateTimePicker DTPEndDate;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.DateTimePicker DTPBeginDate;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtNumber;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Label label11;
private System.Windows.Forms.TextBox txtName;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.TextBox txtClass;
private System.Windows.Forms.Button btnSelect;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.DataGridView dataGridView1;
}
}

View File

@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCReservationInfoSelect : UserControl
{
public UCReservationInfoSelect()
{
InitializeComponent();
}
private void btnSelect_Click(object sender, EventArgs e)
{
DateTime BeginTime = this.DTPBeginDate.Value.Date;
BeginTime = BeginTime.AddHours((double)this.NUDBeginHour.Value);
BeginTime = BeginTime.AddMinutes((double)this.NUDBeginMinute.Value);
DateTime EndTime = this.DTPEndDate.Value.Date;
EndTime = EndTime.AddHours((double)this.NUDEndHour.Value);
EndTime = EndTime.AddMinutes((double)this.NUDEndMinute.Value);
string name = this.txtName.Text;
string Class = this.txtClass.Text;
string number = this.txtNumber.Text;
if (Access.IsHasSQLInject(name) || Access.IsHasSQLInject(Class) || Access.IsHasSQLInject(number))
{
MessageBox.Show("请勿输入敏感词!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (!string.IsNullOrEmpty(number))
{
try
{
number = string.Format("[学号] = {0}", int.Parse(number));
}
catch
{
MessageBox.Show("请输入正确的学号", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
else
number = "1=1";
if (!string.IsNullOrEmpty(Class))
Class = string.Format("[班级名称] = '{0}'", Class);
else
Class = "1=1";
if (!string.IsNullOrEmpty(name))
name = string.Format("[姓名] = '{0}'", name);
else
name = "1=1";
string sql = string.Format("SELECT s.*,t.[购票时间],t.[类型] FROM " +
"(SELECT * FROM [学生表] WHERE {0} AND {1} AND {2})s " +
"INNER JOIN " +
"(SELECT * FROM " +
"(SELECT * FROM [礼堂表] WHERE [票价] = 0 AND [开始时间] Between #{3}# AND #{4}#) a " +
"INNER JOIN [票务表] t ON a.ID = t.礼堂ID) t" +
" ON s.[学号] = t.[购买者ID]",
number, name, Class, BeginTime, EndTime);
try
{
this.dataGridView1.DataSource = Access.obj.GetDataTable(sql);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -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>

View File

@ -0,0 +1,62 @@
namespace AuditoriumMS.UserControls
{
partial class UCSeatMap
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.FLPMap = new System.Windows.Forms.FlowLayoutPanel();
this.SuspendLayout();
//
// FLPMap
//
this.FLPMap.AutoScroll = true;
this.FLPMap.BackColor = System.Drawing.Color.White;
this.FLPMap.Dock = System.Windows.Forms.DockStyle.Fill;
this.FLPMap.Location = new System.Drawing.Point(0, 0);
this.FLPMap.Margin = new System.Windows.Forms.Padding(0);
this.FLPMap.Name = "FLPMap";
this.FLPMap.Size = new System.Drawing.Size(400, 300);
this.FLPMap.TabIndex = 0;
//
// UCSeatMap
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.FLPMap);
this.MinimumSize = new System.Drawing.Size(200, 100);
this.Name = "UCSeatMap";
this.Size = new System.Drawing.Size(400, 300);
this.Load += new System.EventHandler(this.UCSeatMap_Load);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.FlowLayoutPanel FLPMap;
}
}

View File

@ -0,0 +1,128 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCSeatMap : UserControl
{
public UCSeatMap()
{
InitializeComponent();
}
/// <summary>
/// 是否已经初始化
/// </summary>
private bool isInit = false;
private void InitializerSeatMap()
{
System.Threading.Thread t = new System.Threading.Thread(() =>
{
this.Invoke(new Action(() => { FLPMap.SuspendLayout(); }));
Label lblSeat = new Label();
for (int row = 1; row <= Program.AuditoriumSeatRowsCount; ++row)
{
for (int col = 1; col <= Program.AuditoriumSeatColumnsCount; ++col)
{
lblSeat = new Label();
lblSeat.Text = string.Format("{0:00}-{1:00}", row, col);
lblSeat.Name = lblSeat.Text;
lblSeat.AutoSize = true;
lblSeat.Margin = new Padding(6);
lblSeat.Tag = new Point(row, col);
lblSeat.Cursor = Cursors.Hand;
lblSeat.Click += LblSeat_Click;
this.Invoke(new Action(() => { FLPMap.Controls.Add(lblSeat); }));
}
this.Invoke(new Action(() => { FLPMap.SetFlowBreak(lblSeat, true); }));
}
this.isInit = true;
this.Invoke(new Action(() => { FLPMap.ResumeLayout(); }));
});
t.Start();
}
public delegate void SelectedEventHandler(object sender, Point point);
/// <summary>
/// 座位选中事件
/// </summary>
public event SelectedEventHandler SelectedEvent;
// 发出座位被选中的事件
private void LblSeat_Click(object sender, EventArgs e)
{
Label lblSeat = sender as Label;
// 如果颜色不是可以选的颜色,则直接返回
if (lblSeat.BackColor != Color.FromArgb(0x66, 0xFF, 0xCC))
return;
if (SelectedEvent != null)
SelectedEvent(sender, (Point)(sender as Label).Tag);
}
/// <summary>
/// 设置座位值
/// </summary>
/// <param name="soldList">售出的座位</param>
/// <param name="max">总数量</param>
public void SetValue(List<Point> soldList, int max)
{
while (!this.isInit)
; // 等待初始化完毕
FLPMap.SuspendLayout();
for (int i = 0; i < this.FLPMap.Controls.Count; ++i)
{
Label lblSeat = FLPMap.Controls[i] as Label;
if (i < max)
{
lblSeat.Cursor = Cursors.Hand;
lblSeat.ForeColor = Color.FromArgb(0x00, 0x00, 0x00);
lblSeat.BackColor = Color.FromArgb(0x66, 0xFF, 0xCC);
}
else
{
// 如果是无法选择的座位,则取消事件
lblSeat.Cursor = Cursors.Default;
lblSeat.ForeColor = Color.FromArgb(0x99, 0x99, 0x99);
lblSeat.BackColor = Color.FromArgb(0xcc, 0xcc, 0xcc);
}
}
foreach (var p in soldList)
{
string name = string.Format("{0:00}-{1:00}", p.X, p.Y);
var c = FLPMap.Controls.Find(name, false);
if (c != null && c.Length > 0)
{
Label lblSeat = c[0] as Label;
// 如果是无法选择的座位,则取消事件
lblSeat.Cursor = Cursors.Default;
lblSeat.ForeColor = Color.FromArgb(0x00, 0x00, 0x00);
lblSeat.BackColor = Color.FromArgb(0xFF, 0xCC, 0x66);
}
}
FLPMap.ResumeLayout();
}
public void setValue(Point point)
{
string key = string.Format("{0:00}-{1:00}", point.X, point.Y);
var c = FLPMap.Controls.Find(key, false);
if (c != null && c.Length > 0)
{
Label lblSeat = c[0] as Label;
lblSeat.ForeColor = Color.FromArgb(0x00, 0x00, 0x00);
lblSeat.BackColor = Color.FromArgb(0xFF, 0xCC, 0x66);
}
}
private void UCSeatMap_Load(object sender, EventArgs e)
{
InitializerSeatMap();
}
}
}

View File

@ -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>

View File

@ -0,0 +1,193 @@
namespace AuditoriumMS.UserControls
{
partial class UCShowChart
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.label3 = new System.Windows.Forms.Label();
this.DTPEndDate = new System.Windows.Forms.DateTimePicker();
this.DTPBeginDate = new System.Windows.Forms.DateTimePicker();
this.label1 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.btnStartStatistics = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// chart1
//
this.chart1.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)));
chartArea1.AxisX.LabelStyle.Format = "MM-dd";
chartArea1.AxisX.MajorGrid.Enabled = false;
chartArea1.AxisX.Title = "日期";
chartArea1.AxisY.Title = "数量";
chartArea1.Name = "ChartArea1";
this.chart1.ChartAreas.Add(chartArea1);
legend1.Name = "Legend1";
this.chart1.Legends.Add(legend1);
this.chart1.Location = new System.Drawing.Point(6, 22);
this.chart1.Name = "chart1";
series1.ChartArea = "ChartArea1";
series1.Legend = "Legend1";
series1.LegendText = "预订数量";
series1.Name = "Series1";
series1.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Date;
this.chart1.Series.Add(series1);
this.chart1.Size = new System.Drawing.Size(866, 393);
this.chart1.TabIndex = 0;
this.chart1.Text = "预订信息统计图";
//
// groupBox1
//
this.groupBox1.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.groupBox1.Controls.Add(this.chart1);
this.groupBox1.Location = new System.Drawing.Point(3, 110);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(878, 421);
this.groupBox1.TabIndex = 1;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "图表区";
//
// label3
//
this.label3.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label3.Location = new System.Drawing.Point(286, 13);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(312, 31);
this.label3.TabIndex = 41;
this.label3.Text = "预订数量信息统计-图形展示";
//
// DTPEndDate
//
this.DTPEndDate.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.DTPEndDate.Location = new System.Drawing.Point(574, 64);
this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPEndDate.Name = "DTPEndDate";
this.DTPEndDate.Size = new System.Drawing.Size(130, 23);
this.DTPEndDate.TabIndex = 39;
//
// DTPBeginDate
//
this.DTPBeginDate.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.DTPBeginDate.Location = new System.Drawing.Point(252, 64);
this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPBeginDate.Name = "DTPBeginDate";
this.DTPBeginDate.Size = new System.Drawing.Size(130, 23);
this.DTPBeginDate.TabIndex = 40;
//
// label1
//
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label1.Location = new System.Drawing.Point(503, 65);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(79, 20);
this.label1.TabIndex = 37;
this.label1.Text = "结束日期:";
//
// label9
//
this.label9.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label9.Location = new System.Drawing.Point(412, 65);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(68, 21);
this.label9.TabIndex = 36;
this.label9.Text = "<——>";
//
// label2
//
this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label2.Location = new System.Drawing.Point(181, 65);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(79, 20);
this.label2.TabIndex = 38;
this.label2.Text = "起始日期:";
//
// btnStartStatistics
//
this.btnStartStatistics.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStartStatistics.Location = new System.Drawing.Point(774, 64);
this.btnStartStatistics.Name = "btnStartStatistics";
this.btnStartStatistics.Size = new System.Drawing.Size(101, 40);
this.btnStartStatistics.TabIndex = 42;
this.btnStartStatistics.Text = "开始统计";
this.btnStartStatistics.UseVisualStyleBackColor = true;
this.btnStartStatistics.Click += new System.EventHandler(this.btnStartStatistics_Click);
//
// UCShowChart
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.btnStartStatistics);
this.Controls.Add(this.label3);
this.Controls.Add(this.DTPEndDate);
this.Controls.Add(this.DTPBeginDate);
this.Controls.Add(this.label1);
this.Controls.Add(this.label9);
this.Controls.Add(this.label2);
this.Controls.Add(this.groupBox1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCShowChart";
this.Size = new System.Drawing.Size(884, 534);
((System.ComponentModel.ISupportInitialize)(this.chart1)).EndInit();
this.groupBox1.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.DataVisualization.Charting.Chart chart1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.DateTimePicker DTPEndDate;
private System.Windows.Forms.DateTimePicker DTPBeginDate;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button btnStartStatistics;
}
}

View File

@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
namespace AuditoriumMS.UserControls
{
public partial class UCShowChart : UserControl
{
public UCShowChart()
{
InitializeComponent();
}
private void btnStartStatistics_Click(object sender, EventArgs e)
{
DateTime BeginDate = this.DTPBeginDate.Value.Date;
DateTime EndDate = this.DTPEndDate.Value.Date;
string sql1 = string.Format("SELECT t.购票日期,a.类型,t.预订数量 FROM " +
"(SELECT LEFT([购票时间], 10) AS 购票日期,礼堂ID,COUNT(*) AS 预订数量 " +
"FROM 票务表 WHERE [购票时间] Between #{0}# AND #{1}# GROUP BY LEFT([购票时间], 10), 礼堂ID) t " +
"LEFT JOIN [礼堂表] a ON t.礼堂ID = a.ID",
BeginDate, EndDate);
try
{
DataTable dt = Access.obj.GetDataTable(sql1);
foreach (DataRow row in dt.Rows)
{
DataPoint point = new DataPoint();
point.SetValueXY(row["购票日期"], row["预订数量"]);
point.ToolTip = row["类型"].ToString();
this.chart1.Series[0].Points.Add(point);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -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>

View File

@ -0,0 +1,244 @@
namespace AuditoriumMS.UserControls
{
partial class UCSummaryReport
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.cmbMonth = new System.Windows.Forms.ComboBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.txtClassName = new System.Windows.Forms.TextBox();
this.btnReport = new System.Windows.Forms.Button();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.dataGridView2 = new System.Windows.Forms.DataGridView();
this.dataGridView3 = new System.Windows.Forms.DataGridView();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).BeginInit();
this.SuspendLayout();
//
// 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.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Location = new System.Drawing.Point(3, 114);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(878, 417);
this.tabControl1.TabIndex = 0;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.dataGridView2);
this.tabPage1.Location = new System.Drawing.Point(4, 26);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(870, 387);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "学生预订明细";
this.tabPage1.UseVisualStyleBackColor = true;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.dataGridView3);
this.tabPage2.Location = new System.Drawing.Point(4, 26);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(870, 387);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "活动预订情况";
this.tabPage2.UseVisualStyleBackColor = true;
//
// cmbMonth
//
this.cmbMonth.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbMonth.FormattingEnabled = true;
this.cmbMonth.Items.AddRange(new object[] {
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8",
"9",
"10",
"11",
"12"});
this.cmbMonth.Location = new System.Drawing.Point(109, 62);
this.cmbMonth.Name = "cmbMonth";
this.cmbMonth.Size = new System.Drawing.Size(58, 25);
this.cmbMonth.TabIndex = 1;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label1.Location = new System.Drawing.Point(52, 63);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(51, 20);
this.label1.TabIndex = 2;
this.label1.Text = "月份:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label2.Location = new System.Drawing.Point(24, 30);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(79, 20);
this.label2.TabIndex = 3;
this.label2.Text = "班级名称:";
//
// txtClassName
//
this.txtClassName.Location = new System.Drawing.Point(109, 29);
this.txtClassName.Name = "txtClassName";
this.txtClassName.Size = new System.Drawing.Size(138, 23);
this.txtClassName.TabIndex = 4;
//
// btnReport
//
this.btnReport.Location = new System.Drawing.Point(278, 27);
this.btnReport.Name = "btnReport";
this.btnReport.Size = new System.Drawing.Size(112, 27);
this.btnReport.TabIndex = 5;
this.btnReport.Text = "输出报表";
this.btnReport.UseVisualStyleBackColor = true;
this.btnReport.Click += new System.EventHandler(this.btnReport_Click);
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.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.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(6, 22);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.Size = new System.Drawing.Size(443, 83);
this.dataGridView1.TabIndex = 6;
//
// groupBox1
//
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.groupBox1.Controls.Add(this.dataGridView1);
this.groupBox1.Location = new System.Drawing.Point(422, 3);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(455, 111);
this.groupBox1.TabIndex = 7;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "班级当月票务情况";
//
// dataGridView2
//
this.dataGridView2.AllowUserToAddRows = false;
this.dataGridView2.AllowUserToDeleteRows = false;
this.dataGridView2.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.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView2.Location = new System.Drawing.Point(3, 3);
this.dataGridView2.Name = "dataGridView2";
this.dataGridView2.ReadOnly = true;
this.dataGridView2.RowTemplate.Height = 23;
this.dataGridView2.Size = new System.Drawing.Size(864, 381);
this.dataGridView2.TabIndex = 0;
//
// dataGridView3
//
this.dataGridView3.AllowUserToAddRows = false;
this.dataGridView3.AllowUserToDeleteRows = false;
this.dataGridView3.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.dataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView3.Location = new System.Drawing.Point(3, 3);
this.dataGridView3.Name = "dataGridView3";
this.dataGridView3.ReadOnly = true;
this.dataGridView3.RowTemplate.Height = 23;
this.dataGridView3.Size = new System.Drawing.Size(864, 381);
this.dataGridView3.TabIndex = 0;
//
// UCSummaryReport
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.btnReport);
this.Controls.Add(this.txtClassName);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.cmbMonth);
this.Controls.Add(this.tabControl1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCSummaryReport";
this.Size = new System.Drawing.Size(884, 534);
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
this.tabPage2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.ComboBox cmbMonth;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtClassName;
private System.Windows.Forms.Button btnReport;
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.DataGridView dataGridView2;
private System.Windows.Forms.DataGridView dataGridView3;
}
}

View File

@ -0,0 +1,89 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCSummaryReport : UserControl
{
public UCSummaryReport()
{
InitializeComponent();
this.cmbMonth.SelectedIndex = DateTime.Now.Month - 1;
}
private void btnReport_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(txtClassName.Text))
{
MessageBox.Show("请输入班级名称!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
if (Access.IsHasSQLInject(this.txtClassName.Text))
{
MessageBox.Show("请输入规范字符!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
int year = DateTime.Now.Year;
int month = cmbMonth.SelectedIndex + 1;
// 如果统计的月份大于当前月,表示统计去年的
if (month > DateTime.Now.Month)
year--;
// 月初
DateTime BeginDate = new DateTime(year, month, 1);
// 月末
DateTime EndDate = new DateTime(year, month, DateTime.DaysInMonth(year, month));
string sql1 = string.Format("SELECT '{0}' AS 班级名称, '{1}' AS 起始日期, '{2}' AS 终止日期, COUNT(*) AS 预订票数 FROM [票务表] " +
"WHERE [购买者ID] IN(SELECT [学号] FROM [学生表] WHERE [班级名称] = '{0}') " +
"AND [购票时间] BETWEEN #{1}# AND #{2}#",
this.txtClassName.Text, BeginDate.ToShortDateString(), EndDate.ToShortDateString());
string sql2 = string.Format("SELECT st.学号,st.姓名,LEFT(a.开始时间,10) AS 日期,WeekDay(a.开始时间) AS 星期,Format(a.开始时间,'HH:mm') AS 时间,a.类型 FROM " +
"(SELECT * FROM " +
"(SELECT [学号],[姓名] FROM [学生表] WHERE [班级名称] = '{0}') s " +
"INNER JOIN " +
"(SELECT [礼堂ID],[购买者ID] FROM [票务表]) t " +
"ON s.学号 = t.购买者ID) st " +
"INNER JOIN " +
"(SELECT * FROM [礼堂表] WHERE [开始时间] BETWEEN #{1}# AND #{2}#) a " +
"ON st.礼堂ID = a.ID ORDER BY [学号] ASC",
this.txtClassName.Text, BeginDate.ToShortDateString(), EndDate.ToShortDateString());
string sql3 = string.Format("SELECT LEFT(a.开始时间,10) AS 日期,WeekDay(a.开始时间) AS 星期,Format(a.开始时间,'HH:mm') AS 时间,a.类型,t.数量 FROM " +
"(SELECT [礼堂ID],COUNT(*) AS 数量 FROM [票务表] " +
"WHERE [购买者ID] IN(SELECT [学号] FROM [学生表] WHERE [班级名称] = '{0}') " +
"GROUP BY [礼堂ID]) t " +
"INNER JOIN " +
"(SELECT * FROM [礼堂表] WHERE [开始时间] BETWEEN #{1}# AND #{2}#) a " +
"ON t.礼堂ID = a.ID ORDER BY [a.开始时间] ASC",
this.txtClassName.Text, BeginDate.ToShortDateString(), EndDate.ToShortDateString());
try
{
this.dataGridView1.DataSource = Access.obj.GetDataTable(sql1);
DataTable dt2 = Access.obj.GetDataTable(sql2);
DataTable dt3 = Access.obj.GetDataTable(sql3);
dt2.Columns.Add("序号");
dt3.Columns.Add("序号");
dt2.Columns["序号"].SetOrdinal(0);
dt3.Columns["序号"].SetOrdinal(0);
for (int i = 0; i < dt2.Rows.Count; ++i)
dt2.Rows[i]["序号"] = i + 1;
for (int i = 0; i < dt3.Rows.Count; ++i)
dt3.Rows[i]["序号"] = i + 1;
this.dataGridView2.DataSource = dt2;
this.dataGridView3.DataSource = dt3;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -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>

View File

@ -0,0 +1,85 @@
namespace AuditoriumMS.UserControls
{
partial class UCTicketCountSelect
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.label1 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout();
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.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.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(3, 89);
this.dataGridView1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.Size = new System.Drawing.Size(878, 441);
this.dataGridView1.TabIndex = 0;
//
// label1
//
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold);
this.label1.Location = new System.Drawing.Point(363, 31);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(158, 31);
this.label1.TabIndex = 1;
this.label1.Text = "票务数量信息";
//
// UCTicketCountSelect
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label1);
this.Controls.Add(this.dataGridView1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCTicketCountSelect";
this.Size = new System.Drawing.Size(884, 534);
this.Load += new System.EventHandler(this.UCTicketCountSelect_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.Label label1;
}
}

View File

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCTicketCountSelect : UserControl
{
public UCTicketCountSelect()
{
InitializeComponent();
}
private void UCTicketCountSelect_Load(object sender, EventArgs e)
{
string sql = "SELECT a.*, t.购票量, a.票数-t.购票量 as 剩余票数 FROM " +
"(SELECT [礼堂ID],COUNT(*) as 购票量 FROM [票务表] GROUP BY [礼堂ID]) t" +
" RIGHT JOIN [礼堂表] a ON t.礼堂ID = a.ID";
try
{
this.dataGridView1.DataSource = Access.obj.GetDataTable(sql);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -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>

View File

@ -0,0 +1,264 @@
namespace AuditoriumMS.UserControls
{
partial class UCTicketCountStatistics
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DTPEndDate = new System.Windows.Forms.DateTimePicker();
this.DTPBeginDate = new System.Windows.Forms.DateTimePicker();
this.label1 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.tabControl1 = new System.Windows.Forms.TabControl();
this.tabPage1 = new System.Windows.Forms.TabPage();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.tabPage2 = new System.Windows.Forms.TabPage();
this.dataGridView2 = new System.Windows.Forms.DataGridView();
this.tabPage3 = new System.Windows.Forms.TabPage();
this.dataGridView3 = new System.Windows.Forms.DataGridView();
this.btnStartStatistics = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.tabPage2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).BeginInit();
this.tabPage3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).BeginInit();
this.SuspendLayout();
//
// DTPEndDate
//
this.DTPEndDate.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.DTPEndDate.Location = new System.Drawing.Point(574, 64);
this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPEndDate.Name = "DTPEndDate";
this.DTPEndDate.Size = new System.Drawing.Size(130, 23);
this.DTPEndDate.TabIndex = 28;
//
// DTPBeginDate
//
this.DTPBeginDate.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.DTPBeginDate.Location = new System.Drawing.Point(252, 64);
this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPBeginDate.Name = "DTPBeginDate";
this.DTPBeginDate.Size = new System.Drawing.Size(130, 23);
this.DTPBeginDate.TabIndex = 29;
//
// label1
//
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label1.Location = new System.Drawing.Point(503, 65);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(79, 20);
this.label1.TabIndex = 26;
this.label1.Text = "结束日期:";
//
// label9
//
this.label9.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label9.Location = new System.Drawing.Point(412, 65);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(68, 21);
this.label9.TabIndex = 25;
this.label9.Text = "<——>";
//
// label2
//
this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label2.Location = new System.Drawing.Point(181, 65);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(79, 20);
this.label2.TabIndex = 27;
this.label2.Text = "起始日期:";
//
// 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.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Location = new System.Drawing.Point(3, 96);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(878, 435);
this.tabControl1.TabIndex = 30;
//
// tabPage1
//
this.tabPage1.Controls.Add(this.dataGridView1);
this.tabPage1.Location = new System.Drawing.Point(4, 26);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(870, 405);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "预订信息统计";
this.tabPage1.UseVisualStyleBackColor = true;
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.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.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(6, 6);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.Size = new System.Drawing.Size(858, 393);
this.dataGridView1.TabIndex = 0;
//
// tabPage2
//
this.tabPage2.Controls.Add(this.dataGridView2);
this.tabPage2.Location = new System.Drawing.Point(4, 26);
this.tabPage2.Name = "tabPage2";
this.tabPage2.Padding = new System.Windows.Forms.Padding(3);
this.tabPage2.Size = new System.Drawing.Size(870, 395);
this.tabPage2.TabIndex = 1;
this.tabPage2.Text = "学生预订信息统计";
this.tabPage2.UseVisualStyleBackColor = true;
//
// dataGridView2
//
this.dataGridView2.AllowUserToAddRows = false;
this.dataGridView2.AllowUserToDeleteRows = false;
this.dataGridView2.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.dataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView2.Location = new System.Drawing.Point(6, 6);
this.dataGridView2.Name = "dataGridView2";
this.dataGridView2.ReadOnly = true;
this.dataGridView2.RowTemplate.Height = 23;
this.dataGridView2.Size = new System.Drawing.Size(858, 383);
this.dataGridView2.TabIndex = 1;
//
// tabPage3
//
this.tabPage3.Controls.Add(this.dataGridView3);
this.tabPage3.Location = new System.Drawing.Point(4, 26);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(870, 395);
this.tabPage3.TabIndex = 2;
this.tabPage3.Text = "班级预订信息统计";
this.tabPage3.UseVisualStyleBackColor = true;
//
// dataGridView3
//
this.dataGridView3.AllowUserToAddRows = false;
this.dataGridView3.AllowUserToDeleteRows = false;
this.dataGridView3.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.dataGridView3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView3.Location = new System.Drawing.Point(6, 6);
this.dataGridView3.Name = "dataGridView3";
this.dataGridView3.ReadOnly = true;
this.dataGridView3.RowTemplate.Height = 23;
this.dataGridView3.Size = new System.Drawing.Size(858, 383);
this.dataGridView3.TabIndex = 1;
//
// btnStartStatistics
//
this.btnStartStatistics.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStartStatistics.Location = new System.Drawing.Point(751, 37);
this.btnStartStatistics.Name = "btnStartStatistics";
this.btnStartStatistics.Size = new System.Drawing.Size(120, 49);
this.btnStartStatistics.TabIndex = 31;
this.btnStartStatistics.Text = "开始统计";
this.btnStartStatistics.UseVisualStyleBackColor = true;
this.btnStartStatistics.Click += new System.EventHandler(this.btnStartStatistics_Click);
//
// label3
//
this.label3.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label3.Location = new System.Drawing.Point(339, 13);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(206, 31);
this.label3.TabIndex = 35;
this.label3.Text = "预订数量信息统计";
//
// UCTicketCountStatistics
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.label3);
this.Controls.Add(this.btnStartStatistics);
this.Controls.Add(this.tabControl1);
this.Controls.Add(this.DTPEndDate);
this.Controls.Add(this.DTPBeginDate);
this.Controls.Add(this.label1);
this.Controls.Add(this.label9);
this.Controls.Add(this.label2);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCTicketCountStatistics";
this.Size = new System.Drawing.Size(884, 534);
this.tabControl1.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.tabPage2.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView2)).EndInit();
this.tabPage3.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView3)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.DateTimePicker DTPEndDate;
private System.Windows.Forms.DateTimePicker DTPBeginDate;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TabControl tabControl1;
private System.Windows.Forms.TabPage tabPage1;
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.TabPage tabPage2;
private System.Windows.Forms.DataGridView dataGridView2;
private System.Windows.Forms.TabPage tabPage3;
private System.Windows.Forms.DataGridView dataGridView3;
private System.Windows.Forms.Button btnStartStatistics;
private System.Windows.Forms.Label label3;
}
}

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCTicketCountStatistics : UserControl
{
public UCTicketCountStatistics()
{
InitializeComponent();
}
private void btnStartStatistics_Click(object sender, EventArgs e)
{
DateTime BeginDate = this.DTPBeginDate.Value.Date;
DateTime EndDate = this.DTPEndDate.Value.Date;
string sql1 = string.Format("SELECT t.购票日期,a.类型,t.预订数量 FROM " +
"(SELECT LEFT([购票时间], 10) AS 购票日期,礼堂ID,COUNT(*) AS 预订数量 " +
"FROM 票务表 WHERE [购票时间] Between #{0}# AND #{1}# GROUP BY LEFT([购票时间], 10), 礼堂ID) t " +
"LEFT JOIN [礼堂表] a ON t.礼堂ID = a.ID",
BeginDate, EndDate);
string sql2 = string.Format("SELECT s.*,t.预订数量 FROM " +
"(SELECT [购买者ID],count(*) AS 预订数量 FROM 票务表 WHERE [购票时间] Between #{0}# AND #{1}# AND [购买者ID] <> 0 " +
"GROUP BY [购买者ID]) t " +
"LEFT JOIN [学生表] s ON t.购买者ID = s.学号",
BeginDate, EndDate);
string sql3 = string.Format("SELECT s.班级名称,SUM(t.预订数量) AS 总预订数量 FROM " +
"(SELECT [购买者ID],count(*) AS 预订数量 FROM 票务表 WHERE [购票时间] Between #{0}# AND #{1}# AND [购买者ID] <> 0 " +
"GROUP BY [购买者ID]) t " +
"LEFT JOIN [学生表] s ON t.购买者ID = s.学号 " +
"GROUP BY s.班级名称",
BeginDate, EndDate);
try
{
this.dataGridView1.DataSource = Access.obj.GetDataTable(sql1);
this.dataGridView2.DataSource = Access.obj.GetDataTable(sql2);
this.dataGridView3.DataSource = Access.obj.GetDataTable(sql3);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -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>

View File

@ -0,0 +1,353 @@
namespace AuditoriumMS.UserControls
{
partial class UCTicketSelect
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.NUDBeginMinute = new System.Windows.Forms.NumericUpDown();
this.NUDBeginHour = new System.Windows.Forms.NumericUpDown();
this.DTPBeginDate = new System.Windows.Forms.DateTimePicker();
this.label8 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.label5 = new System.Windows.Forms.Label();
this.DTPEndDate = new System.Windows.Forms.DateTimePicker();
this.NUDEndHour = new System.Windows.Forms.NumericUpDown();
this.NUDEndMinute = new System.Windows.Forms.NumericUpDown();
this.label9 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.btnSelect = new System.Windows.Forms.Button();
this.label10 = new System.Windows.Forms.Label();
this.cmbType = new System.Windows.Forms.ComboBox();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginMinute)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginHour)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndHour)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndMinute)).BeginInit();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout();
//
// NUDBeginMinute
//
this.NUDBeginMinute.Location = new System.Drawing.Point(205, 66);
this.NUDBeginMinute.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.NUDBeginMinute.Maximum = new decimal(new int[] {
60,
0,
0,
0});
this.NUDBeginMinute.Name = "NUDBeginMinute";
this.NUDBeginMinute.Size = new System.Drawing.Size(62, 23);
this.NUDBeginMinute.TabIndex = 12;
//
// NUDBeginHour
//
this.NUDBeginHour.Location = new System.Drawing.Point(98, 66);
this.NUDBeginHour.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.NUDBeginHour.Maximum = new decimal(new int[] {
24,
0,
0,
0});
this.NUDBeginHour.Name = "NUDBeginHour";
this.NUDBeginHour.Size = new System.Drawing.Size(62, 23);
this.NUDBeginHour.TabIndex = 13;
this.NUDBeginHour.Value = new decimal(new int[] {
14,
0,
0,
0});
//
// DTPBeginDate
//
this.DTPBeginDate.Location = new System.Drawing.Point(97, 22);
this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPBeginDate.Name = "DTPBeginDate";
this.DTPBeginDate.Size = new System.Drawing.Size(209, 23);
this.DTPBeginDate.TabIndex = 11;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label8.Location = new System.Drawing.Point(274, 66);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(26, 21);
this.label8.TabIndex = 7;
this.label8.Text = "分";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label7.Location = new System.Drawing.Point(167, 66);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(26, 21);
this.label7.TabIndex = 8;
this.label7.Text = "时";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label6.Location = new System.Drawing.Point(12, 66);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(90, 21);
this.label6.TabIndex = 9;
this.label6.Text = "起始时间:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label2.Location = new System.Drawing.Point(12, 23);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(90, 21);
this.label2.TabIndex = 10;
this.label2.Text = "起始日期:";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label1.Location = new System.Drawing.Point(386, 23);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(90, 21);
this.label1.TabIndex = 10;
this.label1.Text = "结束日期:";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label3.Location = new System.Drawing.Point(386, 66);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(90, 21);
this.label3.TabIndex = 9;
this.label3.Text = "结束时间:";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label4.Location = new System.Drawing.Point(543, 67);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(26, 21);
this.label4.TabIndex = 8;
this.label4.Text = "时";
//
// label5
//
this.label5.AutoSize = true;
this.label5.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label5.Location = new System.Drawing.Point(651, 67);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(26, 21);
this.label5.TabIndex = 7;
this.label5.Text = "分";
//
// DTPEndDate
//
this.DTPEndDate.Location = new System.Drawing.Point(473, 23);
this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPEndDate.Name = "DTPEndDate";
this.DTPEndDate.Size = new System.Drawing.Size(209, 23);
this.DTPEndDate.TabIndex = 11;
//
// NUDEndHour
//
this.NUDEndHour.Location = new System.Drawing.Point(474, 67);
this.NUDEndHour.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.NUDEndHour.Maximum = new decimal(new int[] {
24,
0,
0,
0});
this.NUDEndHour.Name = "NUDEndHour";
this.NUDEndHour.Size = new System.Drawing.Size(62, 23);
this.NUDEndHour.TabIndex = 13;
this.NUDEndHour.Value = new decimal(new int[] {
14,
0,
0,
0});
//
// NUDEndMinute
//
this.NUDEndMinute.Location = new System.Drawing.Point(582, 67);
this.NUDEndMinute.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.NUDEndMinute.Maximum = new decimal(new int[] {
60,
0,
0,
0});
this.NUDEndMinute.Name = "NUDEndMinute";
this.NUDEndMinute.Size = new System.Drawing.Size(62, 23);
this.NUDEndMinute.TabIndex = 12;
//
// label9
//
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label9.Location = new System.Drawing.Point(312, 45);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(68, 21);
this.label9.TabIndex = 9;
this.label9.Text = "<——>";
//
// groupBox1
//
this.groupBox1.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.groupBox1.Controls.Add(this.dataGridView1);
this.groupBox1.Location = new System.Drawing.Point(3, 98);
this.groupBox1.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.groupBox1.Size = new System.Drawing.Size(878, 432);
this.groupBox1.TabIndex = 14;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "查询结果";
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.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.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(6, 23);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.dataGridView1.Size = new System.Drawing.Size(866, 402);
this.dataGridView1.TabIndex = 0;
//
// btnSelect
//
this.btnSelect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnSelect.Location = new System.Drawing.Point(710, 61);
this.btnSelect.Name = "btnSelect";
this.btnSelect.Size = new System.Drawing.Size(167, 36);
this.btnSelect.TabIndex = 15;
this.btnSelect.Text = "查询";
this.btnSelect.UseVisualStyleBackColor = true;
this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click);
//
// label10
//
this.label10.AutoSize = true;
this.label10.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label10.Location = new System.Drawing.Point(706, 22);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(51, 20);
this.label10.TabIndex = 10;
this.label10.Text = "类型:";
//
// cmbType
//
this.cmbType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbType.FormattingEnabled = true;
this.cmbType.Items.AddRange(new object[] {
"全部",
"讲座",
"电影"});
this.cmbType.Location = new System.Drawing.Point(753, 21);
this.cmbType.Name = "cmbType";
this.cmbType.Size = new System.Drawing.Size(86, 25);
this.cmbType.TabIndex = 16;
//
// UCTicketSelect
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.cmbType);
this.Controls.Add(this.btnSelect);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.NUDEndMinute);
this.Controls.Add(this.NUDBeginMinute);
this.Controls.Add(this.NUDEndHour);
this.Controls.Add(this.NUDBeginHour);
this.Controls.Add(this.DTPEndDate);
this.Controls.Add(this.label5);
this.Controls.Add(this.DTPBeginDate);
this.Controls.Add(this.label4);
this.Controls.Add(this.label8);
this.Controls.Add(this.label3);
this.Controls.Add(this.label7);
this.Controls.Add(this.label10);
this.Controls.Add(this.label1);
this.Controls.Add(this.label9);
this.Controls.Add(this.label6);
this.Controls.Add(this.label2);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCTicketSelect";
this.Size = new System.Drawing.Size(884, 534);
((System.ComponentModel.ISupportInitialize)(this.NUDBeginMinute)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDBeginHour)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndHour)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.NUDEndMinute)).EndInit();
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.NumericUpDown NUDBeginMinute;
private System.Windows.Forms.NumericUpDown NUDBeginHour;
private System.Windows.Forms.DateTimePicker DTPBeginDate;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.DateTimePicker DTPEndDate;
private System.Windows.Forms.NumericUpDown NUDEndHour;
private System.Windows.Forms.NumericUpDown NUDEndMinute;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.Button btnSelect;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.ComboBox cmbType;
}
}

View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCTicketSelect : UserControl
{
public UCTicketSelect()
{
InitializeComponent();
this.cmbType.SelectedIndex = 0;
}
private void btnSelect_Click(object sender, EventArgs e)
{
DateTime BeginTime = this.DTPBeginDate.Value.Date;
BeginTime = BeginTime.AddHours((double)this.NUDBeginHour.Value);
BeginTime = BeginTime.AddMinutes((double)this.NUDBeginMinute.Value);
DateTime EndTime = this.DTPEndDate.Value.Date;
EndTime = EndTime.AddHours((double)this.NUDEndHour.Value);
EndTime = EndTime.AddMinutes((double)this.NUDEndMinute.Value);
string selectType;
if (this.cmbType.SelectedIndex == 0)
selectType = "";
else
selectType = string.Format("[类型] = '{0}' AND ", this.cmbType.SelectedItem as string);
string sql = string.Format("SELECT * FROM 礼堂表 WHERE {0} [开始时间] Between #{1}# AND #{2}#",
selectType, BeginTime.ToString("yyyy-MM-dd HH:mm:ss"), EndTime.ToString("yyyy-MM-dd HH:mm:ss"));
try
{
this.dataGridView1.DataSource = Access.obj.GetDataTable(sql);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -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>

View File

@ -0,0 +1,180 @@
namespace AuditoriumMS.UserControls
{
partial class UCTicketStatistics
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.btnStartStatistics = new System.Windows.Forms.Button();
this.DTPEndDate = new System.Windows.Forms.DateTimePicker();
this.DTPBeginDate = new System.Windows.Forms.DateTimePicker();
this.label1 = new System.Windows.Forms.Label();
this.label9 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.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.groupBox1.Controls.Add(this.dataGridView1);
this.groupBox1.Location = new System.Drawing.Point(3, 95);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(878, 436);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "统计结果";
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.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.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Location = new System.Drawing.Point(6, 22);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
this.dataGridView1.Size = new System.Drawing.Size(866, 408);
this.dataGridView1.TabIndex = 0;
//
// btnStartStatistics
//
this.btnStartStatistics.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnStartStatistics.Location = new System.Drawing.Point(755, 34);
this.btnStartStatistics.Name = "btnStartStatistics";
this.btnStartStatistics.Size = new System.Drawing.Size(120, 49);
this.btnStartStatistics.TabIndex = 37;
this.btnStartStatistics.Text = "开始统计";
this.btnStartStatistics.UseVisualStyleBackColor = true;
this.btnStartStatistics.Click += new System.EventHandler(this.btnStartStatistics_Click);
//
// DTPEndDate
//
this.DTPEndDate.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.DTPEndDate.Location = new System.Drawing.Point(574, 60);
this.DTPEndDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPEndDate.Name = "DTPEndDate";
this.DTPEndDate.Size = new System.Drawing.Size(130, 23);
this.DTPEndDate.TabIndex = 35;
//
// DTPBeginDate
//
this.DTPBeginDate.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.DTPBeginDate.Location = new System.Drawing.Point(252, 60);
this.DTPBeginDate.Margin = new System.Windows.Forms.Padding(3, 6, 3, 6);
this.DTPBeginDate.Name = "DTPBeginDate";
this.DTPBeginDate.Size = new System.Drawing.Size(130, 23);
this.DTPBeginDate.TabIndex = 36;
//
// label1
//
this.label1.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label1.AutoSize = true;
this.label1.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label1.Location = new System.Drawing.Point(503, 61);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(79, 20);
this.label1.TabIndex = 33;
this.label1.Text = "结束日期:";
//
// label9
//
this.label9.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label9.AutoSize = true;
this.label9.Font = new System.Drawing.Font("微软雅黑", 12F);
this.label9.Location = new System.Drawing.Point(412, 61);
this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(68, 21);
this.label9.TabIndex = 32;
this.label9.Text = "<——>";
//
// label2
//
this.label2.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label2.AutoSize = true;
this.label2.Font = new System.Drawing.Font("微软雅黑", 10F);
this.label2.Location = new System.Drawing.Point(181, 61);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(79, 20);
this.label2.TabIndex = 34;
this.label2.Text = "起始日期:";
//
// label3
//
this.label3.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("微软雅黑", 18F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label3.Location = new System.Drawing.Point(363, 9);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(158, 31);
this.label3.TabIndex = 34;
this.label3.Text = "票务信息统计";
//
// UCTicketStatistics
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.btnStartStatistics);
this.Controls.Add(this.DTPEndDate);
this.Controls.Add(this.DTPBeginDate);
this.Controls.Add(this.label1);
this.Controls.Add(this.label9);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.groupBox1);
this.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.Name = "UCTicketStatistics";
this.Size = new System.Drawing.Size(884, 534);
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.DataGridView dataGridView1;
private System.Windows.Forms.Button btnStartStatistics;
private System.Windows.Forms.DateTimePicker DTPEndDate;
private System.Windows.Forms.DateTimePicker DTPBeginDate;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
}
}

View File

@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AuditoriumMS.UserControls
{
public partial class UCTicketStatistics : UserControl
{
public UCTicketStatistics()
{
InitializeComponent();
}
private void btnStartStatistics_Click(object sender, EventArgs e)
{
DateTime BeginDate = this.DTPBeginDate.Value.Date;
DateTime EndDate = this.DTPEndDate.Value.Date;
string sql = string.Format("SELECT LEFT([开始时间], 10) AS 日期,COUNT(*) AS 总场次," +
"SUM(IIF([类型] = '讲座', 1, 0)) AS 讲座场次, 总场次-讲座场次 AS 电影场次 " +
"FROM [礼堂表] " +
"WHERE [开始时间] Between #{0}# AND #{1}# GROUP BY LEFT([开始时间], 10)",
BeginDate, EndDate);
try
{
this.dataGridView1.DataSource = Access.obj.GetDataTable(sql);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@ -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>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.