zoukankan      html  css  js  c++  java
  • Myflight航班查询系统

    1.导入命名空间,并且定义连接对象和命令对象

    using System.Data.SqlClient;

    //定义连接对象
    SqlConnection conn = null;
    //定义命令对象
    SqlCommand cmd = null;

    3.定义一个静态的类单独存放连接字符串,等使用连接字符串的时候可以直接用类名.连接语句。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace Myflight
    {
    class DBHeper
    {
    public static string constr = "server =.; DataBase =Myflight; Uid =sa; Pwd =******";
    }
    }

    4.第一个为显示出发地的方法

    /// <summary>
    /// 显示出发地方法
    /// </summary>
    private void cboChuSelect()
    {
    try
    {
    //连接对象和连接字符串
    conn = new SqlConnection(DBHeper.constr);
    //查询字符串
    string sql = "select * from CityInfo";
    //适配器对象
    SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    //数据集对象
    DataSet ds = new DataSet();
    //填充数据集
    da.Fill(ds);
    //创建DataRow对象
    DataRow dr = ds.Tables[0].NewRow();
    //下标减一
    dr[0] = -1;
    //添加新下标
    dr[1] = "请选择";
    //绑定添加“请选择”的下标
    ds.Tables[0].Rows.InsertAt(dr,0);
    //绑定数据源
    cbFilghtCity.DataSource = ds.Tables[0];
    //显示值
    cbFilghtCity.DisplayMember = "CityName";
    //隐藏值
    cbFilghtCity.ValueMember = "Id";
    }
    catch (Exception ex)
    {
    //异常提示
    MessageBox.Show("异常!", ex.Message);
    }
    }

    效果图如下:

    5.第二个方法同上!!!(控件名改一下)

    6.将数据库中查询出来的数据放到DataGridView中并将其显示

    /// <summary>
    /// DataGridView显示方法
    /// </summary>
    private void DataGridView()
    {
    try
    {
    //获取组合框选中的值
    int Chu = Convert.ToInt32(cbFilghtCity.SelectedValue);
    int Mu = Convert.ToInt32(cboflightLand.SelectedValue);
    //连接对象
    conn = new SqlConnection(DBHeper.constr);
    //定义执行字符串
    string sql = "select FlightNo,Airways,LeaveTime,LandTime,Price from airwaysinfo,FlightInfo where airwaysinfo.id=FlightInfo.AirwaysId and FlightInfo.LeaveCity = " + Chu + " and Destination = " + Mu + "";
    //创建适配器对象
    SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    //创建数据集对象
    DataSet ds = new DataSet();
    //填充数据集
    da.Fill(ds);
    //绑定数据源
    dgvList.DataSource = ds.Tables[0];
    }
    catch (Exception ex)
    {
    //异常提示代码
    MessageBox.Show("异常!", ex.Message);
    }
    }

     效果图如下:

    7.拿到DataGridView空间中的值,并将它赋值给文本框

    /// <summary>
    /// 拿值和赋值的方法
    /// </summary>
    private void flightDatails()
    {
    //获取用户选中行的集合和获取行的单元格的集合,注意一定要.Value和做相应的转换
    string ID = dgvList.SelectedRows[0].Cells[0].Value.ToString();
    string Name = dgvList.SelectedRows[0].Cells[1].Value.ToString();
    string LeaveTime = dgvList.SelectedRows[0].Cells[2].Value.ToString();
    string LandTiem = dgvList.SelectedRows[0].Cells[3].Value.ToString();
    double Price =Convert.ToDouble(dgvList.SelectedRows[0].Cells[4].Value);
    //这是获取出发地和目的地的Text文本。并拿变量接受
    string cboChu = cbFilghtCity.Text;
    string cboMu = cboflightLand.Text;

    //给相应的文本框赋值
    textBox1.Text = ID;
    textBox2.Text = cboChu;
    textBox3.Text = LeaveTime;
    textBox4.Text = Price.ToString();
    textBox6.Text = Name;
    textBox7.Text = cboMu;
    textBox8.Text = LandTiem;
    }

    效果图如下:

    8.添加到数据库,并判断日期不能小于当前日期和票数不能等于0。

    /// <summary>
    /// 订阅保存方法
    /// </summary>
    private void insert()
    {
    //判断订票的数量是否大于0
    if (nudYu.Value > 0)
    {
    //判断选中的日期是否大于当前日期,并转换为DateTime类型
    if (Convert.ToDateTime(DateTime.Now.ToString()) < Convert.ToDateTime(dtpTiem.Text))
    {
    //连接字符串
    conn = new SqlConnection(DBHeper.constr);
    //打开数据库连接
    conn.Open();
    //创建随机数对象
    Random rd = new Random();
    //定义随机数的范围
    int count = rd.Next(100000,100000000);
    try
    {
    //定义的SQL语句
    string sql = "insert into OrderInfo (OrderId, FlightNo, LeaveDate, Number) values ('"+count.ToString()+"','"+textBox1.Text+"','"+dtpTiem.Value.ToString()+"',"+nudYu.Value.ToString()+")";
    //命令对象
    cmd = new SqlCommand(sql,conn);
    //返回结果并用int类型的变量接受
    int i = cmd.ExecuteNonQuery();
    //判断返回结果是否大于0,大于0就有结果返回,小于0证明没有结果返回
    if (i > 0)
    {
    //订阅成功后提示
    MessageBox.Show("订阅成功!,订单编号为:"+count+"已添加:"+nudYu.Value+"个订单","提示",MessageBoxButtons.OKCancel);
    }
    }
    catch (Exception ex)
    {
    //异常提示
    MessageBox.Show("出现异常!",ex.Message);
    }
    finally
    {
    //关闭链接
    conn.Close();
    }

    }
    else
    {
    MessageBox.Show("不可选中当前日期!");
    }
    }

    }

    效果图如下:

    整个Myflight航班查询及订阅系统就差不多了。(可能会有一点小细节的报错,大家多注意!)

  • 相关阅读:
    bzoj 3670: [Noi2014]动物园
    bzoj 2878: [Noi2012]迷失游乐园
    51nod 1348 乘积之和
    51nod 1514 美妙的序列
    AtCoder Grand Contest 002 D
    bzoj 3451 Normal
    LOJ #6119. 「2017 山东二轮集训 Day7」国王
    51nod 1752 哈希统计
    计蒜客 百度地图的实时路况
    Codeforces 549F Yura and Developers
  • 原文地址:https://www.cnblogs.com/mrgaoyuan/p/8523799.html
Copyright © 2011-2022 走看看