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

 更新时间:2018年02月23日 10:35:25   作者:格调c  
这篇文章给大家介绍利用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.SqlClient;
namespace FrmHangBanUser
{
public partial class FrmUser : Form
{
//1.连接字符串
string connString = "Data Source = .;Initial Catalog=Ticket;User ID = sa; Pwd = sa";
//3.创建DataSet对象
DataSet set = new DataSet();
public FrmUser()
{
InitializeComponent();
}
#region 窗体加载事件
/// <summary>
/// 窗体加载事件!!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmUser_Load(object sender, EventArgs e)
{
//FlightInfo();
AirwaysInfo();
CityInfo();
}
#endregion
#region 出发地
/// <summary>
/// 出发地
/// </summary>
public void AirwaysInfo()
{
try
{
//2.创建Connection对象
SqlConnection conn = new SqlConnection(connString);
//4.创建DataAdapter对象
StringBuilder _sb = new StringBuilder();
_sb.AppendLine(@"SELECT Id,CityName FROM CityInfo");
SqlDataAdapter adapter = new SqlDataAdapter(_sb.ToString(), conn);
//5.填充数据集
adapter.Fill(set, "CityUser");
//6.绑定数据源到ComboBox控件中
this.cboAirways.DataSource = set.Tables["CityUser"];
this.cboAirways.ValueMember = "Id";
this.cboAirways.DisplayMember = "CityName";
//7.添加行对象
DataRow row = set.Tables["CityUser"].NewRow();
row["Id"] = -1;
row["CityName"] = "请选择";
set.Tables["CityUser"].Rows.InsertAt(row, 0);
//8.默认选中一行
this.cboAirways.SelectedIndex = 0;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
#endregion
#region 非空验证
/// <summary>
/// 非空验证
/// </summary>
public void Check()
{
if(this.cboAirways.SelectedIndex == 0)
{
MessageBox.Show("请输入你要出发的城市啊!!","操作提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
}
else if (this.cboMudidi.SelectedIndex == 0)
{
MessageBox.Show("请输入你的目的地啊啊啊!!", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
}
}
#endregion
#region 目的地
/// <summary>
/// 目的地
/// </summary>
public void CityInfo()
{
try
{
//2.创建Connection对象
SqlConnection conn = new SqlConnection(connString);
//4.创建DataAdapter对象
StringBuilder _sb = new StringBuilder();
_sb.AppendLine(@"SELECT Id,CityName FROM CityInfo");
SqlDataAdapter adapter = new SqlDataAdapter(_sb.ToString(), conn);
//5.填充数据集
adapter.Fill(set, "City");
//6.绑定数据源到ComboBox控件中
this.cboMudidi.DataSource = set.Tables["City"];
this.cboMudidi.ValueMember = "Id";
this.cboMudidi.DisplayMember = "CityName";
//7.添加行对象
DataRow row = set.Tables["City"].NewRow();
row["Id"] = -1;
row["CityName"] = "请选择";
set.Tables["City"].Rows.InsertAt(row, 0);
//8.默认选中一行
this.cboMudidi.SelectedIndex = 0;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
#endregion
#region 航班信息
/// <summary>
/// 航班信息
/// </summary>
public void FlightInfo()
{
try
{
//2.创建Connection对象
SqlConnection conn = new SqlConnection(connString);
//4.创建DataAdapter对象
StringBuilder _sb = new StringBuilder();
_sb.AppendLine(@"SELECT F.FlightNO,A.Airways,F.LeaveTime,F.LandTime,F.Price
FROM FlightInfo AS F INNER JOIN AirwaysInfo AS A ON F.AirwaysId = A.Id");
SqlDataAdapter adapter = new SqlDataAdapter(_sb.ToString(), conn);
//5.填充数据集
if (set.Tables["Airways"]!=null)
{
set.Tables["Airways"].Clear();
}
adapter.Fill(set, "Airways");
//6.绑定数据源
this.dvgUserInfo.DataSource = set.Tables["Airways"];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
#endregion
#region 查询按钮功能
/// <summary>
/// 查询按钮功能
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnChaXun_Click(object sender, EventArgs e)
{
Check();
Filter();
}
#endregion
#region 按选择的条件筛选
/// <summary>
/// 按选择的条件筛选
/// </summary>
public void Filter()
{
try
{
SqlConnection conn=new SqlConnection(connString);
//筛选条件
DataSet ds = new DataSet();
int city = Convert.ToInt32(cboAirways.SelectedValue);
int Destination = Convert.ToInt32(cboMudidi.SelectedValue);
StringBuilder sb = new StringBuilder();
if(city!=-1 && Destination!=-1)
{
sb.AppendLine(@"SELECT F.FlightNO,A.Airways,F.LandTime,F.LeaveTime,F.Price
FROM FlightInfo AS F INNER JOIN AirwaysInfo AS A ON F.AirwaysId = A.Id");
sb.AppendFormat(@"WHERE LeaveCity = {0} AND Destination = {1}", city, Destination);
}
SqlDataAdapter adapter = new SqlDataAdapter(sb.ToString(),conn);
adapter.Fill(ds,"User");
this.dvgUserInfo.DataSource = ds.Tables["User"];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
#endregion
#region 关闭按钮功能
/// <summary>
/// 关闭按钮功能
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnGuanbi_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("你确定要退出程序嘛~","退出提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Stop);
if(result == DialogResult.OK)
{
Application.Exit(); //退出程序了。。 - - |||
}
}
#endregion
#region 实现航班选择功能
/// <summary>
/// 实现航班选择功能
/// </summary>
private void dvgUserInfo_MouseClick(object sender, MouseEventArgs e)
{
txtHNo.Text = dvgUserInfo.SelectedRows[0].Cells["FlightNO"].Value.ToString();
txtGongSi.Text = dvgUserInfo.SelectedRows[0].Cells["Airways"].Value.ToString();
this.txtChuFa.Text = this.cboAirways.Text;
this.txtMuDi.Text = this.cboMudidi.Text;
txtShijian.Text = dvgUserInfo.SelectedRows[0].Cells["LeaveTime"].Value.ToString();
txtDaoDa.Text = dvgUserInfo.SelectedRows[0].Cells["LandTime"].Value.ToString();
txtPiaoJia.Text = dvgUserInfo.SelectedRows[0].Cells["Price"].Value.ToString();
}
#endregion
#region 航班预定功能
/// <summary>
/// 航班预定功能
/// </summary>
/// <returns></returns>
public bool Insert()
{
Random _dom = new Random();
int no = _dom.Next(100000, 1000000);
SqlConnection conn = null;
string No = this.txtHNo.Text;
DateTime LeaveDate = this.dateTimePicker1.Value;
string Number = this.nuShang.Value.ToString();
try
{
conn = new SqlConnection(connString);
//构建插入学生记录的SQL的语句
StringBuilder _sbu = new StringBuilder();
_sbu.AppendLine("INSERT INTO OrderInfo(OrderId,FlightNo,LeaveDate,Number)");
_sbu.AppendFormat("VALUES('{0}','{1}','{2}','{3}')", no, No, LeaveDate, Number);
_sbu.AppendFormat("SELECT @@IDENTITY");
//创建Command对象
SqlCommand command = new SqlCommand(_sbu.ToString(), conn);
//打开连接
conn.Open();
//调用方法
int result = command.ExecuteNonQuery();
//对返回值进行处理
if (result > 0)
{
MessageBox.Show("恭喜你!预定成功!订单编号为"+no);
return true;
}
else
{
MessageBox.Show("预定失败!请重试!");
return false;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
finally
{
//关闭连接
conn.Close();
}
}
#endregion
#region 预定按钮
/// <summary>
/// 预定按钮!
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnYuDing_Click(object sender, EventArgs e)
{
Insert();
}
#endregion
}
}

总结

以上所述是小编给大家介绍的C#实现航班查询及预订功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

相关文章

  • C#多线程实现异步接口

    C#多线程实现异步接口

    这篇文章介绍了C#多线程实现异步接口的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • C#中的高效IO库System.IO.Pipelines

    C#中的高效IO库System.IO.Pipelines

    这篇文章介绍了C#中的高效IO库System.IO.Pipelines,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • C# 多线程编程技术基础知识入门

    C# 多线程编程技术基础知识入门

    这篇文章主要介绍了C# 多线程编程技术基础知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-02-02
  • C#中判断一个集合是否是另一个集合的子集的简单方法

    C#中判断一个集合是否是另一个集合的子集的简单方法

    本文介绍利用C#中内置的系统函数判断一个集合是否是一个集合的子集的方法,此方法代码量极少,分享给大家。
    2016-04-04
  • c#多线程网络聊天程序代码分享(服务器端和客户端)

    c#多线程网络聊天程序代码分享(服务器端和客户端)

    本程序使用VS2005 制作,程序分为三块,XuLIeHua类库下有我写的把结构序列化的类,还有就是服务器端和客户端
    2013-12-12
  • C#实现聊天消息渲染与图文混排详解

    C#实现聊天消息渲染与图文混排详解

    在实现聊天软件时,渲染文字表情图文混排是一项非常繁琐的工作,再加上还要支持GIF动图、引用消息、撤回消息、名片等不同样式的消息渲染时,就更加麻烦了。本文就来和大家分享一下具体实现方法,希望对大家有所帮助
    2023-02-02
  • DevExpress之ChartControl实现柱状图演示实例

    DevExpress之ChartControl实现柱状图演示实例

    这篇文章主要介绍了DevExpress中ChartControl实现柱状图演示方法,实例展示了相关绘图函数的具体用法,具有一定的实用价值,需要的朋友可以参考下
    2014-10-10
  • 如何给C#变量取名字

    如何给C#变量取名字

    本文主要介绍了如何给C#变量取名字,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Unity实现主角移动与摄像机跟随

    Unity实现主角移动与摄像机跟随

    这篇文章主要为大家详细介绍了Unity实现主角移动与摄像机跟随,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • c#高效的线程安全队列ConcurrentQueue<T>的实现

    c#高效的线程安全队列ConcurrentQueue<T>的实现

    这篇文章主要介绍了c#高效的线程安全队列ConcurrentQueue<T>的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论