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
0
投稿
猜你喜欢
- 介绍在 C/C++ 中,程序员负责对象的创建和销毁。通常程序员会忽略无用对象的销毁。由于这种疏忽,在某些时候,为了创建新对象,可能没有足够的
- 参考答案java.sql.Date 是 java.util.Date 的子类java.util.Date 是 JDK 中的日期类,精确到时、
- 今天再学习一些C#的基础知识,如对 Int Array进行排序:你可以在控制台应用程序中,创建一个类别,它属性和2个构造函数:Source
- 接口等幂性通俗的来说就是同一时间内,发起多次请求只有一次请求成功;其目的时防止多次提交,数据重复入库,表单验证网络延迟重复提交等问题。比如:
- java 线程锁在Java线程中运用synchronized关键字来达到同步的 synchronized可以锁方法,锁类,锁对象,锁代码块方
- 获取自定义菜单查询返回的结果有乱码解决方法:string Posturl = "https://api.weixin.qq.com
- 1集合的概念把集合看做是一个容器,集合不是一个类,是一套集合框架,框架体系包含很多的集合类,java api提供了集合存储任意类型(基本包装
- 在我们日常开发过程中,通常会涉及到数据权限问题,下面以我们常见的一种场景举例:一个公司有很多部门,每个人所处的部门和角色也不同,所以数据权限
- 目录一、前言二、正文2.1 注解2.1.1 注解1:@Target({ElementType.TYPE})2.1.2 注解2:@Retent
- Mybatis Log Plugin使用今天发现大部分猿友关于查看执行sql语句的方法,只知道将其输出到控制台。然而还有更简便的方法,就是使
- 本文实例为大家分享了java实现简单斗地主的具体代码,供大家参考,具体内容如下第一种方法 /** * @param args */ /**
- BeanPostProcessor接口作用:如果我们想在Spring容器中完成bean实例化、配置以及其他初始化方法前后要添加一些自己逻辑处
- 近期,Apache SkyWalking 修复了一个隐藏了近4年的Bug - TTL timer 可能失效问题,这个 bug 在 SkyWa
- 1 需求描述我们现在要干一个什么事情呢,我们要在浏览器输入一个请求地址,然后我们的后端就给我返回一个User对象即可,并且我希望以Json的
- @JsonInclude(JsonInclude.Include.NON_NULL)不起作用记录一下使用@JsonInclude(JsonI
- 目录题目及要求:提示:原创代码:代码思路:题目及要求:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。提示:0 <
- 一、定界符成帧Framer接口package framer;import java.io.IOException;import java.i
- 1.用intellij idea 创建了一个springboot的项目,前期都运行的好好的,在ide中可以正常运行,但是打包成Jar运行却一
- PipedOutputStream和PipedInputStream在java中,PipedOutputStream和PipedInputS
- @Autowired加到接口上但获取的是实现类问题Spring的@Autowired加到接口上但获取的是实现类? &