zoukankan      html  css  js  c++  java
  • 模拟航班查询及预定系统 编写示例

    一、建立C#窗体

    所需控件:

    Label标签  

    Button 按钮

    TextBox 文本框

    ComboBox 组合框

    DATaGridView 数据显示

    DateTimePicker 日期表

    NumericUpDown 数字选择

    二、建立后台数据库

    大概需要四张表

    1,航空公司表

    2,城市信息表

    3,航班信息表

    3,订单信息表

    三、向comboBox中插入城市信息供用户选择

    示例SQL语句:

    select CityName from CityInfo

    四、让DataGridView显示查询到的数据

    示例SQL语句:

    int AirId = comboBox1.SelectedIndex ;

    int DestinationId = comBox2.SelectedIndex;

    select * from FlightInfo as F,AirwaysInfo as A where AirwaysInfo.Id = FlightInfo.AirwaysId and FlightInfo.LeaveCity='" + AirId + "' and FlightInfo.Destination='" + DestinationId + "

    将行显示属性 设置为 FullRowSelect

    并将每个值显示在各个TextBox 文本框

    五、预定订单

    获取订单数量,用户选择的航班信息和日期

    添加到返回到数据库中,预定成功

    全部参考代码:

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

    namespace BookPlane
    {
    public partial class FIightOrderMSG : Form
    {
    public FIightOrderMSG()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    FillDataGridView();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
    dgvList.AutoGenerateColumns = false;
    FindCityInfo();
    }

    DBHelper db = new DBHelper();
    /// <summary>
    /// 查询航班出发地
    /// </summary>
    public void FindCityInfo()
    {
    string sql = "select * from CityInfo";

    try
    {
    db.conOpen();
    SqlCommand comm = new SqlCommand(sql, db.conn);
    SqlDataReader reader = comm.ExecuteReader();
    cboStart.Items.Add("请选择");
    cboStart.Items.IndexOf(0);
    cboStart.SelectedIndex = 0;
    cboEnd.Items.Add("请选择");
    cboEnd.Items.IndexOf(0);
    cboEnd.SelectedIndex = 0;
    if (reader.HasRows)
    {
    while (reader.Read())
    {
    string city = reader["CityName"].ToString();
    cboStart.Items.Add(city);
    cboEnd.Items.Add(city);
    }
    reader.Close();
    }
    else
    {
    MessageBox.Show("未检测到有效信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    }
    catch (Exception)
    {
    MessageBox.Show("发生错误!");
    }
    finally
    {
    db.conClose();
    }
    }

    /// <summary>
    /// 填充DataGridView中的数据
    /// </summary>
    public void FillDataGridView()
    {

    //连接数据库
    SqlConnection conn = new SqlConnection(db.strCon);
    //创建SQL语句
    StringBuilder sql = new StringBuilder();
    //获取comboBox被选中的下标
    int AirId = cboStart.SelectedIndex;
    int DestinationId = cboEnd.SelectedIndex;
    //创建SQL语句
    sql.AppendLine(" select * from FlightInfo,AirwaysInfo");
    sql.AppendLine(" where AirwaysInfo.Id = FlightInfo.AirwaysId");
    sql.AppendLine(" and FlightInfo.LeaveCity='" + AirId + "' and FlightInfo.Destination='" + DestinationId + "'");
    //创建适配器,卡车对象
    SqlDataAdapter da = new SqlDataAdapter(sql.ToString(), conn);
    DataSet ds = new DataSet();
    da.Fill(ds, "air");
    dgvList.DataSource = ds.Tables["air"];

    //string FlightNo = reader["FlightNo"].ToString();
    //string Airways = reader["Airways"].ToString();
    //string LeaveTime = reader["LeaveTime"].ToString();
    //string LandTime = reader["LandTime"].ToString();
    //string Price = reader["Price"].ToString();

    }

    private void dgvList_CellClick(object sender, DataGridViewCellEventArgs e)
    {
    //获取DataGridView中的值,显示在各个文本框中
    txtFlightNo.Text = Convert.ToString(dgvList.SelectedCells[0].Value);
    txtFlightCompany.Text = dgvList.SelectedRows[0].Cells[1].Value.ToString();
    txtStartTime.Text = dgvList.SelectedRows[0].Cells[2].Value.ToString();
    txtEndTime.Text = dgvList.SelectedRows[0].Cells[3].Value.ToString();
    txtPrice.Text = dgvList.SelectedRows[0].Cells[4].Value.ToString();
    txtStart.Text = cboStart.SelectedItem.ToString();
    txtEnd.Text = cboEnd.SelectedItem.ToString();
    }

    private void btnOrder_Click(object sender, EventArgs e)
    {
    //产生6位随机数
    Random r = new Random();
    string random = Convert.ToString(r.Next(100000, 1000000));
    string flightNo = txtFlightNo.Text;
    int num = Convert.ToInt32(nudOrderNum.Value);
    if (txtFlightCompany.Text != string.Empty)
    {
    if (dtpStart.Value < DateTime.Now)
    {
    MessageBox.Show("请选择一个有效的时间!", "提示");
    }
    else
    {
    SqlConnection conn = new SqlConnection(db.strCon);
    DateTime leaveTime = dtpStart.Value;
    try
    {

    //连接数据库
    conn.Open();
    string sql = @"insert into OrderInfo values('" + random + "','" + flightNo + "','" + leaveTime + "'," + num + ")";
    SqlCommand comm = new SqlCommand(sql, conn);
    int isReact = comm.ExecuteNonQuery();
    if (isReact > 0)
    {
    MessageBox.Show("预定成功!祝您旅途愉快!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    }
    catch (Exception ex)
    {
    MessageBox.Show("发生错误!" + ex);
    }
    finally
    {
    conn.Close();
    }
    }
    }
    else
    {
    MessageBox.Show("请选择一个航班!", "提示");
    }

    }

    private void btnClose_Click(object sender, EventArgs e)
    {
    DialogResult result = MessageBox.Show("确定要关闭吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
    if (result == DialogResult.OK)
    {
    this.Close();
    }
    }
    }
    }

  • 相关阅读:
    李航统计学习方法(第二版)(六):k 近邻算法实现(kd树(kd tree)方法)
    ActiveMQ的安装和启动
    HTML select autofocus 属性
    macpath (File & Directory Access) – Python 中文开发手册
    Java Bitset类
    Linux zip命令
    HTML DOM Keygen 对象
    tanh (Numerics) – C 中文开发手册
    no-shadow (Rules) – Eslint 中文开发手册
    require-await (Rules) – Eslint 中文开发手册
  • 原文地址:https://www.cnblogs.com/chenyang520/p/8529595.html
Copyright © 2011-2022 走看看