C#实现航班预订系统

本文实例为大家分享了C#实现航班预订的具体代码,供大家参考,具体内容如下

连接数据库

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;

namespace MyTickets
{
    public class DBHelper
    {
        //数据库连接字符串
        public string connString = @"Data Source=.;Initial Catalog=MyTicket;Trusted_Connection=Yes;Connect Timeout=90";
        /// <summary>
        /// 数据库连接对象
        /// </summary>
        private SqlConnection connction;
    public SqlConnection Connction
        {
            get
            {
                if (connction == null)
                {
                    connction = new SqlConnection(connString);
                }
                return connction;
            }
        }
        /// <summary>
        /// 打开数据库连接
        /// </summary>
        public void OpenConnection()
        {
            if (connction.State == ConnectionState.Closed)
            {
                Connction.Open();
            }
            else if (connction.State == ConnectionState.Broken)
            {
                Connction.Close();
                Connction.Open();
            }
           
        }
        /// <summary>
        /// 关闭数据库连接
        /// </summary>
        public void CloseConnection()
        {
            if(connction.State==ConnectionState.Open|| connction.State == ConnectionState.Broken)
            {
                Connction.Close();
            }
        }

    }
}

开头动画代码

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

namespace MyTickets
{
    public partial class 开头 : Form
    {
        public 开头()
        {
            InitializeComponent();
            timer1.Interval = 1000;
            timer1.Start();
            timer1.Tick += new EventHandler(timer1_Tick);
        }

        private void 开头_Load(object sender, EventArgs e)
        {
            TransparencyKey = BackColor;
            
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Stop();
            初始界面 f0 = new 初始界面();
            this.Hide();
            f0.ShowDialog();
        }
    }
}

机票预订界面

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

namespace MyTickets
{
    public partial class 机票预订 : Form
    {
        #region 构造函数
        public 机票预订()
        {
            InitializeComponent();
        }

        public 机票预订(string text)
        {
            InitializeComponent();
            usename.Text = text;
        }
        #endregion

        #region 方法

        #region 绑定cbo
        /// <summary>
        /// 绑定cbo
        /// </summary>
        private void BindCbo()
        {
            DBHelper dbHelper = new DBHelper();
            //sql语句
            string sql = "select * from cityInfo";
            //适配器adapter
            SqlDataAdapter adapter = new SqlDataAdapter(sql, dbHelper.Connction);
            //数据集
            DataSet ds = new DataSet();
            //填充数据集
            adapter.FillSchema(ds, SchemaType.Source, "cityInfo");
            adapter.Fill(ds, "cityInfo");
            //新的一行
            DataRow row = ds.Tables["cityInfo"].NewRow();
            row[0] = -1;
            row[1] = "请选择";
            //插入
            ds.Tables["cityInfo"].Rows.InsertAt(row, 0);
            //获取视图
            DataView dv1 = new DataView(ds.Tables["cityInfo"]);
            DataView dv2 = new DataView(ds.Tables["cityInfo"]);
            //绑定
            this.cboDestinationCity.DataSource = dv1;
            this.cboDestinationCity.DisplayMember = "cityName";
            this.cboDestinationCity.ValueMember = "id";

            this.cboLeaveCity.DataSource = dv2;
            this.cboLeaveCity.DisplayMember = "cityName";
            this.cboLeaveCity.ValueMember = "id"; 
        }
        #endregion

        #region 绑定dgv
        /// <summary>
        /// 绑定dgv
        /// </summary>
        private void BindDgv()
        {
            DBHelper dbHelper = new DBHelper();
            string sql = string.Format(@"select flightNo,airways,leaveTime,landTime,price
                                        from flightInfo,airwaysInfo
                                        where flightInfo.airwaysId=airwaysInfo.id
                                        and leaveCity={0}
                                        and destinationCity={1}", cboLeaveCity.SelectedValue, cboDestinationCity.SelectedValue);
            SqlDataAdapter adapter = new SqlDataAdapter(sql, dbHelper.Connction);
            DataSet ds = new DataSet();
            adapter.Fill(ds, "flightInfo");
            this.dataGridView1.DataSource = ds.Tables["flightInfo"];
        }
        #endregion

        #region 验证预订部分的用户输入
        /// <summary>
        /// 验证预订部分的用户输入
        /// </summary>
        /// <returns></returns>
        private bool ValidateInput()
        {
            if (txtFlightNo.Text == string.Empty)
            {
                MessageBox.Show("请选择一个航班!");
                return false;
            }
            if (dateTimePicker1.Value < DateTime.Now)
            {
                MessageBox.Show("请选择正确的出发日期!");
                dateTimePicker1.Focus();
                return false;
            }
            return true;
        } 
        #endregion

        #endregion

        #region 事件
        //加载事件
        private void Form1_Load(object sender, EventArgs e)
        {
            BindCbo();
            TransparencyKey = BackColor;

        }
        //查询事件
        private void tbnQuery_Click(object sender, EventArgs e)
        {
            if(cboLeaveCity.Text=="请选择"||cboDestinationCity.Text=="请选择")
            {
                MessageBox.Show("请选择出发地与目的地!");
                this.dataGridView1.DataSource = null;
                return;
            }
            BindDgv();
            //清空txt
            foreach (Control c in groupBox2.Controls)
            {
                if(c is TextBox)
                {
                    c.Text = string.Empty;
                }
            }
        }
        //单击dgv
        private void dataGridView1_Click(object sender, EventArgs e)
        {
            if(dataGridView1.Rows.Count>0)
            {
                this.txtFlightNo.Text = dataGridView1.CurrentRow.Cells["flightNo"].Value.ToString();
                this.txtAirways.Text = dataGridView1.CurrentRow.Cells["airways"].Value.ToString();
                this.txtFrom.Text = cboLeaveCity.Text;
                this.txtTo.Text = cboDestinationCity.Text;
                this.txtLeaveTime.Text = dataGridView1.CurrentRow.Cells["leaveTime"].Value.ToString();
                this.txtLandTime.Text = dataGridView1.CurrentRow.Cells["landTime"].Value.ToString();
                this.txtPrice.Text = dataGridView1.CurrentRow.Cells["price"].Value.ToString();
            }
        }
        //点击关闭
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        //点击预定
        private void button1_Click(object sender, EventArgs e)
        {
            if(ValidateInput())
            {
                Random random = new Random();
                int orderId= random.Next(100000, 9999999);
                string flightNo = this.txtFlightNo.Text;
                string leaveDate = this.dateTimePicker1.Value.ToShortDateString();
                string landTime = this.txtLandTime.Text;
                string price = this.txtPrice.Text;
                int num = (int)this.numNunber.Value;
                string leavePlace = this.txtFrom.Text;
                string landPlace = this.txtTo.Text;
                string usename = this.usename.Text;
                string sql = string.Format(@"insert into orderInfo(orderId,flightNo,leaveDate,landTime,price,Number,leavePlace,landPlace,useId)
                                            values({0},'{1}','{2}','{3}','{4}',{5},'{6}','{7}','{8}')", orderId, flightNo, leaveDate,landTime,price,num, leavePlace, landPlace,usename);
                DBHelper dbHelper = new DBHelper();
                try
                {
                    //执行工具
                    SqlCommand cmd = new SqlCommand(sql, dbHelper.Connction);
                    //打开数据库
                    dbHelper.OpenConnection();
                    //执行
                    int result =cmd.ExecuteNonQuery();
                    //判断
                    if(result>0)
                    {
                        MessageBox.Show("预订成功!订单编号是:" + orderId);
                    }
                    else
                    {
                        MessageBox.Show("预定失败,请重试!");
                    }
                }
                catch(Exception ex)
                {
                    MessageBox.Show("发生错误,请联系管理员,错误原因是:"+ex.Message);
                }
                finally
                {
                    dbHelper.CloseConnection();
                }
            }
        }

        #endregion

        #region 鼠标移动
        Point mouseOff;//鼠标移动位置变量
        bool leftFlag;//标签是否为左键
        private void 机票预订_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                mouseOff = new Point(-e.X, -e.Y); //得到变量的值
                leftFlag = true;                  //点击左键按下时标注为true;

            }
        }

        private void 机票预订_MouseMove(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {

                Point mouseSet = Control.MousePosition;
                mouseSet.Offset(mouseOff.X, mouseOff.Y);  //设置移动后的位置
                Location = mouseSet;
            }
        }

        private void 机票预订_MouseUp(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                leftFlag = false;//释放鼠标后标注为false;
            }
        }
        #endregion

    }
}

订单查询界面

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

namespace MyTickets
{
    public partial class 订单查询 : Form
    {
        public 订单查询(string text)
        {
            InitializeComponent();
            usename.Text = text.ToString();
        }
        #region 鼠标移动
        Point mouseOff;//鼠标移动位置变量
        bool leftFlag;//标签是否为左键
        private void 订单查询_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                mouseOff = new Point(-e.X, -e.Y); //得到变量的值
                leftFlag = true;                  //点击左键按下时标注为true;

            }
        }

        private void 订单查询_MouseMove(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {

                Point mouseSet = Control.MousePosition;
                mouseSet.Offset(mouseOff.X, mouseOff.Y);  //设置移动后的位置
                Location = mouseSet;
            }
        }

        private void 订单查询_MouseUp(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                leftFlag = false;//释放鼠标后标注为false;
            }
        }
        #endregion

        private void 订单查询_Load(object sender, EventArgs e)
        {
            DBHelper dbHelper = new DBHelper();
            string sql = string.Format(@"select orderId,flightNo,leaveDate,landTime,leavePlace,landPlace from orderInfo where useId ='{0}'",usename);
            SqlDataAdapter adapter = new SqlDataAdapter(sql, dbHelper.Connction);
            DataSet ds = new DataSet();
            adapter.Fill(ds, "orderInfo");
            this.dataGridView1.DataSource = ds.Tables["orderInfo"];
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}

登录界面

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

namespace MyTickets
{
    public partial class 初始界面 : Form
    {

        public 初始界面()
        {
            InitializeComponent();
        }
        int count = 0;

        #region 鼠标移动
        Point mouseOff;//鼠标移动位置变量
        bool leftFlag;//标签是否为左键
        private void 初始界面_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                mouseOff = new Point(-e.X, -e.Y); //得到变量的值
                leftFlag = true;                  //点击左键按下时标注为true;

            }
        }

        private void 初始界面_MouseMove(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {

                Point mouseSet = Control.MousePosition;
                mouseSet.Offset(mouseOff.X, mouseOff.Y);  //设置移动后的位置
                Location = mouseSet;
            }
        }

        private void 初始界面_MouseUp(object sender, MouseEventArgs e)
        {
            if (leftFlag)
            {
                leftFlag = false;//释放鼠标后标注为false;
            }
        }
        #endregion

        #region 打开其他窗口

        private void 查询订单btn_Click(object sender, EventArgs e)
        {
            string userid = this.用户名TEXT.Text;
            string psword = this.passwordtxt.Text;
            if (userid.Equals("") || psword.Equals(""))//用户名或密码为空
            {
                MessageBox.Show("用户名或密码不能为空");
            }
            else
            {
                string sql = string.Format(@"select useId,psword from LoginIn where useId = '{0}' and psWord = '{1}'", userid, psword);
                DBHelper dbHelper = new DBHelper();
                SqlCommand cmd = new SqlCommand(sql, dbHelper.Connction);
                dbHelper.OpenConnection();
                SqlDataReader sdr = cmd.ExecuteReader();

                if (sdr.Read())
                {
                    MessageBox.Show("信息验证成功");

                    //跳转到主页面
                    订单查询 fd = new 订单查询(用户名TEXT.Text);
                    fd.ShowDialog();
                    this.Hide();
                }
                else
                {
                    MessageBox.Show("用户名或密码错误");
                }
            }
        }
        #endregion

        #region 轮播
        private void ChangeImage(Image img, int millisecondsTimeOut)
        {
            if (this.IsHandleCreated)
            {
                this.Invoke(new Action(() =>
                {
                    轮播1.Image = img;
                })
                );
            }
            Thread.Sleep(millisecondsTimeOut);
        }
        private void 初始界面_Load(object sender, EventArgs e)
        {
            Thread th;
            th = new Thread
                (
                    delegate ()
                    {
                        // 3就是要循环轮数了
                        for (int i = 0; i < 100; i++)
                        {
                            //调用方法
                            ChangeImage(Properties.Resources.东方航空, 2000);
                            count++;
                            ChangeImage(Properties.Resources.南方航空, 2000);
                            count++;
                            ChangeImage(Properties.Resources.四川航空, 2000);
                            count++;
                            ChangeImage(Properties.Resources.海南航空, 2000);
                            count++;
                        }
                    }
                );
            th.IsBackground = true;
            th.Start();
        }

        //关闭
        private void label1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        //轮播
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            if (count % 4 == 0)
            {
                System.Diagnostics.Process.Start("http://www.ceair.com/");
            }
            if (count % 4 == 3)
            {
                System.Diagnostics.Process.Start("https://www.hnair.com/");
            }
            if (count % 4 == 1)
            {
                System.Diagnostics.Process.Start("https://www.csair.com/");
            }
            if (count % 4 == 2)
            {
                System.Diagnostics.Process.Start("http://www.sichuanair.com/");
            }
        }
        #endregion

        #region 绑定登录
        private void 登录btn_Click(object sender, EventArgs e)
        {
            string userid = this.用户名TEXT.Text;
            string psword = this.passwordtxt.Text;
            if (userid.Equals("") || psword.Equals(""))//用户名或密码为空
            {
                MessageBox.Show("用户名或密码不能为空");
            }
            else
            {
                string sql = string.Format(@"select useId,psword from LoginIn where useId = '{0}' and psWord = '{1}'",userid, psword);
                DBHelper dbHelper = new DBHelper();
                SqlCommand cmd = new SqlCommand(sql, dbHelper.Connction);
                dbHelper.OpenConnection();
                SqlDataReader sdr = cmd.ExecuteReader();

                if (sdr.Read())
                {
                    MessageBox.Show("信息验证成功");

                    //跳转到主页面
                    机票预订 f2 = new 机票预订(用户名TEXT.Text);
                    this.Hide();
                    f2.ShowDialog();

                }
                else
                {
                    MessageBox.Show("用户名或密码错误");
                }
            }
            

        }   
        #endregion
        
        #region 绑定注册
        private void 注册btn_Click(object sender, EventArgs e)
        {
            string userid = this.用户名TEXT.Text;
            string psword = this.passwordtxt.Text;
            string sql = string.Format(@"insert into LoginIn(useId,psWord)
                                            values('{0}','{1}')", userid, psword);
            DBHelper dbHelper = new DBHelper();
            try
            {
                //执行工具
                SqlCommand cmd = new SqlCommand(sql, dbHelper.Connction);
                //打开数据库
                dbHelper.OpenConnection();
                //执行
                int result = cmd.ExecuteNonQuery();
                //判断
                if (result > 0)
                {
                    MessageBox.Show("注册成功,请登录!");
                }
                else
                {
                    MessageBox.Show("注册失败,请重试!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("发生错误,请联系管理员,错误原因是:" + ex.Message);
            }

        }
        #endregion

    }
}

下面是一些效果图

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

(0)

相关推荐

  • C#实现航班查询及预订功能

    具体代码如下所示: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClien

  • C#实现航班预订系统

    本文实例为大家分享了C#实现航班预订的具体代码,供大家参考,具体内容如下 连接数据库 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace MyTickets {     public class DBHe

  • C++实现机票预订系统

    C++编写一个简单的机票预订系统.该程序显示一个带有下列选项的菜单:预订机票.取消预订.查看某人是否预定了机票,以及显示预订乘客.这些信息保存在一个按照字母排列的名字链表中.在程序的简化版中,假设只为一趟航班预订机票.在完全版中不再限制航班的数目.创建一个航班链表,其中每个节点都指向乘客链表的指针. /*******************list.h**********************/ #include <iostream> #include <malloc.h> #i

  • C语言实现航班售票系统 C语言实现航班管理系统

    本文实例为大家分享了C语言航班售票系统的具体代码,供大家参考,具体内容如下 题目描述:实现一个航班售票系统,每个航班应包括以下信息:航班号.起飞地.目的地.总座位数.余票数.乘客名单等:每个乘客的信息有:乘客姓名.证件号码.座位号等. #include <stdio.h> #include <stdlib.h> #include <string.h> #define MaxFlight 32 //最大的航班数 #define MaxPassenger 1000 //最大

  • 基于EJB技术的商务预订系统的开发

    技术已经越来越多地应用到大型网络系统开发中,本文中,笔者将介绍EJB(Enterprise Java Beans)的定义.基于EJB技术的应用系统结构模型以及EJB组件的内容和分类,最后结合基于EJB的结构模型和EJB组件开发了一个商务预订系统.EJB从技术上而言不是一种"产品",而是一种技术规范.SUN公司对EJB的定义是:EJB的结构是开发和配置基于组件的分布式商务应用程序的一种组件结构.用EJB结构开发的应用程序是可伸缩的.事务型的.多用户安全的.这些应用程序可能只需编写一次,却

  • Java实战之火车票预订系统的实现

    目录 一.项目运行 二.效果图 三.核心代码 个人中心Controller 管理员和员工登陆控制 用户管理操作 一.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: JSP + Servlert + html+ css + JavaScript + JQuery + Ajax 等等: 二.效果图 三.核心代码 个人中心Controller /** * 个人中心

  • 菜鸟必看网络名词

    ADSL ADSL(Asymetric Digital Subscriber Loop)技术即非对称数字用户环路技术,就是利用现有的一对电话铜线,为用户提供上.下行非对称的传输速率(带宽),上行(从用户到网络)为低速的传输,可达640Kbps:下行(从网络到用户)为高速传输,可达7Mbps.它最初主要是针对视频点播业务开发的,随着技术的发展,逐步成为了一种较方便的宽带接入技术,为电信部门所重视. 这种宽带接入技术具有以下特点: 1. 可直接利用现有用户电话线,无须另铺电缆,节省投资: 2. 渗入

  • 关系型数据库和非关系型数据库概述与优缺点对比

    目录 一.关系型数据库 1.概念 2.关系型数据库的特点 3.关系型数据库的瓶颈 4.关系型数据遵循ACID原则 1.A(Atomicity)原子性 2.C(Consistency)一致性 3.I(Isolation)独立性 4.D(Durability)持久性 二.NoSQL数据库 1.分布式系统 2.分布式计算的优点 3.分布式计算的缺点 4.关系型数据库和非关系型数据库的比较 4.1.关系型数据库 4.2.NoSQL 5.NoSQL的优点/缺点 一.关系型数据库 1.概念 关系型数据库:是

  • C++实现简单酒店管理系统

    本文实例为大家分享了C++实现简单酒店管理系统的具体代码,供大家参考,具体内容如下 酒店管理系统设计报告 一. 需求分析 题目要求如下: 某酒店有客房若干间,其中客房分为不同等级,如豪华.标准.普通等,客房床位数也不同.例如,豪华套房有4个床位,400元/晚:标准客房2个床位,200元/晚:普通客房1个床位,100元/晚. 顾客分金卡会员.银卡会员.普通会员及非会员,其享受的折扣不同.例如,金卡会员可享受8折优惠,银卡会员可享受9折优惠,普通会员享受95折优惠,非会员不享受优惠. 当顾客连续入住

  • C语言实现航班订票系统

    本文实例为大家分享了C语言实现航班订票系统的具体代码,供大家参考,具体内容如下 描述: 点定义两个链表,一个存储航班信息,一个存储客户信息: 进行一系列简单的增删查找: 代码如下 #include<cstdio> #include<cstring> #include<iostream> #include<cstdlib> using namespace std; const int MAXN=250; typedef struct { string p_id

随机推荐