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
-5
发布时间 2022-05-27 21:00:21
0 条回复(回复会通过微信通知作者)
点击加载更多评论
登录 后再进行评论
(微信扫码即可登录,无需注册)