C#实现航班预订系统
作者:Xuxiaoooo 发布时间:2021-12-26 02:19:37
标签: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
}
}
下面是一些效果图
来源:https://blog.csdn.net/qq_43182421/article/details/90315820


猜你喜欢
- Android实现TextView超链接一共有五种方式:推荐第四种、第五种1. 直接在xml文件中配置autoLink属性(简单易用,效果单
- 异常处理增强错误恢复能力是提高代码健壮性的最有力的途径之一,C语言中采用的错误处理方法被认为是紧耦合的,函数的使用者必须在非常靠近函数调用的
- Notification的作用通知(Notification)是Android系统中比较有特色的一个功能。当某个应用程序希望向用户发出一些提
- 一、使用SchedulingConfigurer实现多个定时任务示例参考lz此博文链接二、定时任务多机器部署解决方案方式一:拆分,单独拆分出
- 由于今天在网上搜了一下c#写的计算器,发现大多都太繁琐了,很多没必要并且不容易理解的东西就专门写了这个博客1.首先新建一个windows窗体
- 本文实例讲述了Android开发之开关按钮控件ToggleButton简单用法。分享给大家供大家参考,具体如下:先来看看运行效果:具体代码如
- Windows操作系统可以实现重命名文件操作,却不能实现批量重命名。本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规
- 前言最近写了一篇博客是关于使用Jenkins来构建SVN+Maven项目 ,这里使用的的代码版本工具是SVN,但是事实上也有很多公司使用GI
- 我们在开发需求的时候,难免会接入一下第三方的H5页面,有些H5页面是具有上传照片的功能,Android 中的 WebView是不能直接打开文
- 本文实例讲述了Java编程实现提取文章中关键字的方法。分享给大家供大家参考,具体如下:实现代码:/** * 相关的jar包 * lucene
- 目录前言一、内存优化策略二、具体优化的点1.避免内存泄漏2.Bitmap等大对象的优化策略(1) 优化Bitmap分辨率(2) 优化单个像素
- AndroidManifest.xml <uses-feature>和<uses-permisstion>分析及比较
- 一、项目目录即一个空项目里,有两个springboot的Module。当需要修改kuangshen-es-api这个Module的jdk版本
- 欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demo
- 开篇JDBC类型与Java类型并不是完全一一对应的。所以在PreparedStatement绑定参数的时候需要把Java类型转为JDBC类型
- 1.前言1.1.FastJson的介绍:JSON(javaScript Object Notation)是一种轻量级的数据交换格式。主要采用
- 本篇内容主要讲述了实现基于微软账户的第三方身份验证、实现双因子身份验证、 验证码机制这3个内容。实现基于微软账户的第三方身份验证在
- 一、问题在哪里?问题来源于app开发中一个很常见的场景——用户头像要展示成圆的: 二、怎么
- 本文实例讲述了C#设置软件开机自动运行的方法。分享给大家供大家参考,具体如下:#region/// <summary>/// 开
- 看书的时候被一段代码能凌乱啦,代码是这样的:package 继承;abstract class People {