博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Myflight航班查询系统
阅读量:4322 次
发布时间:2019-06-06

本文共 3742 字,大约阅读时间需要 12 分钟。

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航班查询及订阅系统就差不多了。(可能会有一点小细节的报错,大家多注意!)

 

转载于:https://www.cnblogs.com/mrgaoyuan/p/8523799.html

你可能感兴趣的文章
Git报错:insufficient permission for adding an object to repository database .git/objects
查看>>
ajax跨域,携带cookie
查看>>
BZOJ 1600: [Usaco2008 Oct]建造栅栏( dp )
查看>>
洛谷 CF937A Olympiad
查看>>
Codeforces Round #445 C. Petya and Catacombs【思维/题意】
查看>>
用MATLAB同时作多幅图
查看>>
python中map的排序以及取出map中取最大最小值
查看>>
ROR 第一章 从零到部署--第一个程序
查看>>
<form>标签
查看>>
vue去掉地址栏# 方法
查看>>
Lambda03 方法引用、类型判断、变量引用
查看>>
was集群下基于接口分布式架构和开发经验谈
查看>>
MySQL学习——MySQL数据库概述与基础
查看>>
ES索引模板
查看>>
HDU2112 HDU Today 最短路+字符串哈希
查看>>
JPanel重绘
查看>>
图片放大器——wpf
查看>>
SCALA STEP BY STEP
查看>>
cocos2d-x学习笔记
查看>>
MySql中的变量定义
查看>>