航班查询系统

航班查询系统

一、背景、目的和意义

二、 主要功能描述

三、 软/硬件环境

四、 数据库设计

五、 界面设计

六、 编程过程中所遇难题

七、 分工协作

八、 收获

一、背景:

学习了数据库软件SQL 2005和Microsoft Visual Studio 2008后想到了用这2个软件做这个航班查询系统,通过ASP 做出SQL 的界面并导入存储过程对功能进行实现!

目的和意义:

机票查询系统是为机场工作人员和客户提供机票信息查询等与机票相关内

容和管理的系统,它具有开放体系结构的、易扩充的、易维护的、具有良好人机界面的优点. 它除克服了存储乘客信息少,查询效率低下等问题外,更重要的是其安全性,可靠性。它为企业的决策层提供准确、精细、迅速的机票销售信息,为乘客出行提供方便,便于机场工作人员对机票信息进行管理,提高了机场工作人员对机票管理的工作效率。为便于旅客通过代售点查询航班信息,要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。 航班查询系统需要完成功能主要有:

(1)管理员对航班信息的输入、修改和查询,对用户信息的查询。 (2)旅客信息的注册和登录及对航班信息的查询。

1.1数据分析

航班信息(航班号,机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)

旅客信息(用户名,密码,性别,年龄)

1.2用户活动分析

用户通过系统查询航班信息。

用户活动图:

二、主要功能描述 2.1 航班信息维护模块

提供航班信息的录入、删除、修改。可以录入航班情况。 机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数。当航班信息改变时可以修改航班信息数据库。

2.2 航班业务处理模块

提供查询航班剩余票数功能。客户可以登录航班购票系统进行查询;如果该航班已经无票,可以换乘。

系统功能图

系统流程图

数据流图1:

三、 软/硬件环境:

使用Microsoft Visual Studio 2008和Microsoft SQL Server 2005电脑是windows7 64bit操作系统。

4、数据字典

1) 数据项

表2-1

数据项名

含义说明 航班信息 航班信息 航线信息 航线信息 航线信息 航班信息 航班信息 航班信息 航班信息 用户信息 用户信息 用户信息 用户信息 用户信息

数据类型 varchar varchar char char char char char varchar varchar char char char char char

长度 50 10 10 10 10 10 10 50 50 10 10 10 10 10

说明 航班号码 航班所属机型 航班所属公司 飞机起飞城市 飞机到达城市 飞机起飞时间 飞机到达时间 航班的总票数 航班的剩余票数

用户名 密码 性别 年龄 用户等级

航班号 机型

航空公司 起飞城市 到达城市 起飞时间 到达时间 总票数 剩余票数 Username Psw Sex Age ulevel

2) 数据结构

表2-2

名称 company ticket Flight air

简述 定义公司相关信息 定义机票相关信息 定义航班相关信息

定义飞机相关信息

组成

公司名,公司地址,公司代码,公司电话 机票号,座位,票价,航班号

航班号,出发地,到达地,出发时间,到达时间,公司代码,航班号 航程,飞机号,票价

3) 数据流

4) 数据存储

表2-3

名称 Company Flight ticket Customer Air

简述 定义公司相关信息 定义机票相关信息 定义旅客相关信息 定义飞机相关信息

组成

CID,Cname, Caddress, Cphone

ticketID ,price ,seat number,Flight number ID number,name ,Pnumber ,Address Air number, Voyage, price

5) 处理过程

5、概念结构设计

1.1 概念结构设计的方法

概念设计阶段采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。

1.2 概念结构设计的步骤

第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较

好的反映系统中各局部应用的子系统组成。因此我们们先逐一的设计分E-R 图。

第二步是进行视图的集成:各子系统的E-R 图设计好之后,下一步就是要将所有的分E-R 图合成一个系统的总E-R 图,一般有两个方式,多个分E-R 图一次集成,另一种是一次集成两个分E-R 图。

概念模型设计

E —R 图

逻辑设计

将ER 图转换为关系模式

顾客(用户名,密码,性别,年龄)。

航班(航班号,机型,航班公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩

余票数)。

Customer (psw ,sex ,age ,ulevel )

Flight(余票数)

下划线标注的属性为主码。 以上关系模式均为BCNF 。

物理设计

一、 为了提高在表中搜索元祖的速度,在实际实现的时候应该基于码机建立索引。各表中

简历索引的表项: (1)Customer(Username ) (2)Flight(航班号) 二、 [用SQL 实现设计]

1、 建立Customer 表

CREATE TABLE [dbo]. [用户表]( [username] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,

[psw] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [sex] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [age] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [ulevel] [char](10) COLLATE Chinese_PRC_CI_AS NULL,

CONSTRAINT [PK_用户表] PRIMARY KEY CLUSTERED (

[username] ASC

) WITH (PAD_INDEX = OFF , IGNORE_DUP_KEY = OFF ) ON [PRIMARY] ) ON [PRIMARY]

2、 建立Airplane 表

CREATE TABLE [dbo]. [Airplane](

[航班号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [机型] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL, [航空公司] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [起飞城市] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [到达城市] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [起飞时间] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [到达时间] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [总票数] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,

[剩余票数] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Airplane] PRIMARY KEY CLUSTERED (

[航班号] ASC

) WITH (PAD_INDEX = OFF , IGNORE_DUP_KEY = OFF ) ON [PRIMARY] ) ON [PRIMARY]

3、 顾客操作

(1) 注册 (register)

INSERT INTO 用户表(Username,psw,sex,age,ulevel) VALUES(#Username,#psw,#sex,#age,#ulevel); (2) 注销 (unregister) DELETE Customer

WHERE(Username=#Username);

本系统涉及到的存储过程:

这是注册界面,代码如下:

using System;

using System.Collections; using System.Configuration; using System.Data;

using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient;

public partial class Default2 : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

TextBox1.Focus(); }

protected void Button2_Click(object sender, EventArgs e) {

Response.Redirect("Default.aspx" ); }

protected void Button1_Click(object sender, EventArgs e) {

string Add = " 注册" ;

string constr = ConfigurationManager .ConnectionStrings["sss" ].ToString(); SqlConnection conn = new SqlConnection (); conn.ConnectionString = constr;

if (conn.State != ConnectionState .Open) {

conn.Open(); }

SqlCommand cmd = new SqlCommand (Add, conn);

cmd.CommandType = CommandType .StoredProcedure; //这是告诉程序这是执行存储过程 SqlParameter Parameter1 = new SqlParameter ("@username", SqlDbType .Char, 10); SqlParameter Parameter2 = new SqlParameter ("@psw", SqlDbType .Char, 10); SqlParameter Parameter3 = new SqlParameter ("@sex", SqlDbType .Char, 10); SqlParameter Parameter4 = new SqlParameter ("@age", SqlDbType .Char, 10); SqlParameter Parameter5 = new SqlParameter ("@ulevel", SqlDbType .Char, 10); Parameter1.Value = TextBox1.Text; Parameter2.Value = TextBox2.Text; Parameter3.Value = DropDownList1.Text; Parameter4.Value = TextBox3.Text; Parameter5.Value = DropDownList2.Text; cmd.Parameters.Add(Parameter1); cmd.Parameters.Add(Parameter2);

cmd.Parameters.Add(Parameter3); cmd.Parameters.Add(Parameter4); cmd.Parameters.Add(Parameter5); DataTable table = new DataTable ();

SqlDataAdapter adapter = new SqlDataAdapter (cmd); adapter.Fill(table); conn.Close();

Response.Redirect("Default.aspx" ); } }

代码中引用了注册的存储过程:

SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER ON GO

create proc [dbo]. [注册] (

@username char (10), @psw char (10), @sex char (10), @age char (10), @ulevel char (10) ) as begin

insert into 用户表(username , psw , sex , age , ulevel ) values (@username, @psw, @sex, @age, @ulevel) end GO

SET ANSI_NULLS OFF GO

SET QUOTED_IDENTIFIER OFF GO

这是登录界面登录时必须选对用户等级,不然会报错,登录界面代码如下:

using System;

using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

TextBox1.Focus(); }

protected void Button2_Click(object sender, EventArgs e) {

Response.Redirect("Default.aspx" ); }

protected void Button1_Click(object sender, EventArgs e) {

string Add = "CheckUser" ;

string constr = ConfigurationManager .ConnectionStrings["sss" ].ToString(); SqlConnection conn = new SqlConnection (); conn.ConnectionString = constr;

if (conn.State != ConnectionState .Open) {

conn.Open();

}

SqlCommand cmd = new SqlCommand (Add, conn); cmd.CommandType = CommandType .StoredProcedure;

SqlParameter Parameter1 = new SqlParameter ("@username", SqlDbType .Char, 10); SqlParameter Parameter2 = new SqlParameter ("@psw", SqlDbType .Char, 10); SqlParameter Parameter3 = new SqlParameter ("@ulevel", SqlDbType .Char, 10); Parameter1.Value = TextBox1.Text; Parameter2.Value = TextBox2.Text; Parameter3.Value = DropDownList1.Text; cmd.Parameters.Add(Parameter1); cmd.Parameters.Add(Parameter2); cmd.Parameters.Add(Parameter3); DataTable table = new DataTable ();

SqlDataAdapter adapter = new SqlDataAdapter (cmd); adapter.Fill(table);

SqlDataReader dr = cmd.ExecuteReader(); //调用executereader ()方法得到dr 对象 dr.Read();

if (dr.HasRows) //如果有返回记录存在 {

if (DropDownList1.Text == " 管理员" ) {

Session["pass" ] = "admin" ; Response.Redirect("manager.aspx" ); } else {

Session["pass" ] = "guest" ; Response.Redirect("guest.aspx" ); } } else {

Response.Write(""); return ; } } }

代码中使用的登录的存储过程:

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON GO

ALTER PROCEDURE [dbo]. [CheckUser]

@username char (10) , @psw char (10) , @ulevel char (10) AS BEGIN

select * from 用户表where username=@username and psw=@psw and ulevel =@ulevel END

管理员进去之后可以查询航班表,用户表和管理航班,对信息进行添加修改 这里是通过拉控件方式做的,如下图:

通过拉FormView 和SqlDataSource 两个控件,用FormView 绑定SqlDataSource ,然后在SqlDataSource 中配置数据源,然后新建连接如下图:

选择存储过程

点击完成即可,用户表则是GridView 和SqlDataSource 控件,方法类似就不再列举!

管理员界面这里涉及到2个存储过程: dbo. 查看航班表 dbo. 查看用户表

航班表的程序:

ConnectionString ="" SelectCommand ="

"

SelectCommandType ="StoredProcedure">

用户表的程序:

ConnectionString ="" SelectCommand ="

"

SelectCommandType ="StoredProcedure">

这是航班管理界面

管理航班的程序:

通过新建可以插入新的信息!

ConflictDetection ="CompareAllValues"

ConnectionString =""

DeleteCommand ="DELETE FROM [Airplane] WHERE [航班号] = @original_航班号 AND (([机型] = @original_机型) OR ([机型] IS NULL AND @original_机型 IS NULL)) AND (([航空公司] =

@original_航空公司) OR ([航空公司] IS NULL AND @original_航空公司 IS NULL)) AND (([起飞城市] = @original_起飞城市) OR ([起飞城市] IS NULL AND @original_起飞城市 IS NULL)) AND (([到达城市] = @original_到达城市) OR ([到达城市] IS NULL AND @original_到达城市 IS NULL)) AND (([起飞时间] = @original_起飞时间) OR ([起飞时间] IS NULL AND @original_起飞时间 IS NULL)) AND (([到达时间] = @original_到达时间) OR ([到达时间] IS NULL AND @original_到达时间 IS NULL)) AND (([总票数] = @original_总票数) OR ([总票数] IS NULL AND @original_总票数 IS NULL)) AND (([剩余票数] = @original_剩余票数) OR ([剩余票数] IS NULL AND @original_剩余票数 IS NULL))"

InsertCommand ="INSERT INTO [Airplane] ([航班号], [机型], [航空公司], [起飞城市],

[到达城市], [起飞时间], [到达时间], [总票数], [剩余票数]) VALUES (@航班号, @机型, @航空公司, @起飞城市, @到达城市, @起飞时间, @到达时间, @总票数, @剩余票数)"

OldValuesParameterFormatString ="original_{0}"

SelectCommand ="查看信息"

UpdateCommand ="UPDATE [Airplane] SET [机型] = @机型, [航空公司] = @航空公司, [起飞城市] = @起飞城市, [到达城市] = @到达城市, [起飞时间] = @起飞时间, [到达时间] = @到达时间, [总票数] = @总票数, [剩余票数] = @剩余票数 WHERE [航班号] = @original_航班号 AND (([机型] = @original_机型) OR ([机型] IS NULL AND @original_机型 IS NULL)) AND (([航空公司] = @original_航空公司) OR ([航空公司] IS NULL AND @original_航空公司 IS NULL)) AND (([起飞城市] = @original_起飞城市) OR ([起飞城市] IS NULL AND @original_起飞城市 IS NULL)) AND (([到达城市] = @original_到达城市) OR ([到达城市] IS NULL AND @original_到达城市 IS NULL)) AND (([起飞时间] = @original_起飞时间) OR ([起飞时间] IS NULL AND @original_起飞时间 IS NULL)) AND (([到达时间] = @original_到达时间) OR ([到达时间] IS NULL AND @original_到达时间 IS NULL)) AND (([总票数] = @original_总票数) OR ([总票数] IS NULL AND @original_总票数 IS NULL)) AND (([剩余票数] = @original_剩余票数) OR ([剩余票数] IS NULL AND @original_剩余票数 IS NULL))"

SelectCommandType ="StoredProcedure">

这里是系统自动生成的导入存储过程的代码有Update ,Delete ,Insert 插入,删除,修改这些功能的代码

这是用户登陆后的界面,,输入条件后会成功显示如下图:

按机型查询的过程:

ConnectionString =""

SelectCommand ="机型" SelectCommandType ="StoredProcedure">

按航班号查询的过程

ConnectionString =""

SelectCommand ="航班号" SelectCommandType ="StoredProcedure">

按目的地查询的过程

ConnectionString =""

SelectCommand ="目的地" SelectCommandType ="StoredProcedure">

PropertyName ="Text"

Type ="String" />

这3个过程涉及到3个存储过程:

机型的存储过程:

create proc [dbo]. [机型]

(

@机型char (10)

)

as

select * from Airplane where (机型=@机型)

return

航班号的存储过程:

create proc [dbo]. [航班号]

(

@航班号char (10)

)

as

select * from Airplane where (航班号=@航班号)

return

目的地的存储过程:

create proc [dbo]. [目的地]

(

@到达城市char (10)

)

as

select * from Airplane where (到达城市=@到达城市)

return

六、 编程过程中所遇难题:

编程过程中遇到各种各样的问题,其中有3个大问题:

1、 导入数据库后连接不上数据库,查了1个小时的网,对远程连接做了修改并将regedit

中star 的键值修改为2才解决。

2、 导入数据库后不知道怎么样去利用存储过程,随后查了4个小时的代码并且问同学

然后学会了拉控件的方法直接使用存储过程。

3、 使用控件时数据类型出错不能解决,经过查询资料及问同学找出了解决办法,asp

中是string 型的数据所以要转换数据类型才行,最后解决了此问题。还有各种各样小问题就不一一列举

八、 收获:

通过这次学习收获了很多,学会了如何将不同同学做的东西整理在一起做成一个系统,并且学会了查询网上资料与询问老师和同学一起找到解决问题的办法,在存储过程方面问了许多赵慧老师才终于做成功这个系统,知道了分工合作的重要性,许多问题是一个人无法解决的!

航班查询系统

一、背景、目的和意义

二、 主要功能描述

三、 软/硬件环境

四、 数据库设计

五、 界面设计

六、 编程过程中所遇难题

七、 分工协作

八、 收获

一、背景:

学习了数据库软件SQL 2005和Microsoft Visual Studio 2008后想到了用这2个软件做这个航班查询系统,通过ASP 做出SQL 的界面并导入存储过程对功能进行实现!

目的和意义:

机票查询系统是为机场工作人员和客户提供机票信息查询等与机票相关内

容和管理的系统,它具有开放体系结构的、易扩充的、易维护的、具有良好人机界面的优点. 它除克服了存储乘客信息少,查询效率低下等问题外,更重要的是其安全性,可靠性。它为企业的决策层提供准确、精细、迅速的机票销售信息,为乘客出行提供方便,便于机场工作人员对机票信息进行管理,提高了机场工作人员对机票管理的工作效率。为便于旅客通过代售点查询航班信息,要求系统能有效、快速、安全、可靠和无误的完成上述操作。并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。 航班查询系统需要完成功能主要有:

(1)管理员对航班信息的输入、修改和查询,对用户信息的查询。 (2)旅客信息的注册和登录及对航班信息的查询。

1.1数据分析

航班信息(航班号,机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数)

旅客信息(用户名,密码,性别,年龄)

1.2用户活动分析

用户通过系统查询航班信息。

用户活动图:

二、主要功能描述 2.1 航班信息维护模块

提供航班信息的录入、删除、修改。可以录入航班情况。 机型,航空公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩余票数。当航班信息改变时可以修改航班信息数据库。

2.2 航班业务处理模块

提供查询航班剩余票数功能。客户可以登录航班购票系统进行查询;如果该航班已经无票,可以换乘。

系统功能图

系统流程图

数据流图1:

三、 软/硬件环境:

使用Microsoft Visual Studio 2008和Microsoft SQL Server 2005电脑是windows7 64bit操作系统。

4、数据字典

1) 数据项

表2-1

数据项名

含义说明 航班信息 航班信息 航线信息 航线信息 航线信息 航班信息 航班信息 航班信息 航班信息 用户信息 用户信息 用户信息 用户信息 用户信息

数据类型 varchar varchar char char char char char varchar varchar char char char char char

长度 50 10 10 10 10 10 10 50 50 10 10 10 10 10

说明 航班号码 航班所属机型 航班所属公司 飞机起飞城市 飞机到达城市 飞机起飞时间 飞机到达时间 航班的总票数 航班的剩余票数

用户名 密码 性别 年龄 用户等级

航班号 机型

航空公司 起飞城市 到达城市 起飞时间 到达时间 总票数 剩余票数 Username Psw Sex Age ulevel

2) 数据结构

表2-2

名称 company ticket Flight air

简述 定义公司相关信息 定义机票相关信息 定义航班相关信息

定义飞机相关信息

组成

公司名,公司地址,公司代码,公司电话 机票号,座位,票价,航班号

航班号,出发地,到达地,出发时间,到达时间,公司代码,航班号 航程,飞机号,票价

3) 数据流

4) 数据存储

表2-3

名称 Company Flight ticket Customer Air

简述 定义公司相关信息 定义机票相关信息 定义旅客相关信息 定义飞机相关信息

组成

CID,Cname, Caddress, Cphone

ticketID ,price ,seat number,Flight number ID number,name ,Pnumber ,Address Air number, Voyage, price

5) 处理过程

5、概念结构设计

1.1 概念结构设计的方法

概念设计阶段采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。

1.2 概念结构设计的步骤

第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较

好的反映系统中各局部应用的子系统组成。因此我们们先逐一的设计分E-R 图。

第二步是进行视图的集成:各子系统的E-R 图设计好之后,下一步就是要将所有的分E-R 图合成一个系统的总E-R 图,一般有两个方式,多个分E-R 图一次集成,另一种是一次集成两个分E-R 图。

概念模型设计

E —R 图

逻辑设计

将ER 图转换为关系模式

顾客(用户名,密码,性别,年龄)。

航班(航班号,机型,航班公司,起飞城市,到达城市,起飞时间,到达时间,总票数,剩

余票数)。

Customer (psw ,sex ,age ,ulevel )

Flight(余票数)

下划线标注的属性为主码。 以上关系模式均为BCNF 。

物理设计

一、 为了提高在表中搜索元祖的速度,在实际实现的时候应该基于码机建立索引。各表中

简历索引的表项: (1)Customer(Username ) (2)Flight(航班号) 二、 [用SQL 实现设计]

1、 建立Customer 表

CREATE TABLE [dbo]. [用户表]( [username] [char](10) COLLATE Chinese_PRC_CI_AS NOT NULL,

[psw] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [sex] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [age] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [ulevel] [char](10) COLLATE Chinese_PRC_CI_AS NULL,

CONSTRAINT [PK_用户表] PRIMARY KEY CLUSTERED (

[username] ASC

) WITH (PAD_INDEX = OFF , IGNORE_DUP_KEY = OFF ) ON [PRIMARY] ) ON [PRIMARY]

2、 建立Airplane 表

CREATE TABLE [dbo]. [Airplane](

[航班号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL, [机型] [varchar](10) COLLATE Chinese_PRC_CI_AS NULL, [航空公司] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [起飞城市] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [到达城市] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [起飞时间] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [到达时间] [char](10) COLLATE Chinese_PRC_CI_AS NULL, [总票数] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,

[剩余票数] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Airplane] PRIMARY KEY CLUSTERED (

[航班号] ASC

) WITH (PAD_INDEX = OFF , IGNORE_DUP_KEY = OFF ) ON [PRIMARY] ) ON [PRIMARY]

3、 顾客操作

(1) 注册 (register)

INSERT INTO 用户表(Username,psw,sex,age,ulevel) VALUES(#Username,#psw,#sex,#age,#ulevel); (2) 注销 (unregister) DELETE Customer

WHERE(Username=#Username);

本系统涉及到的存储过程:

这是注册界面,代码如下:

using System;

using System.Collections; using System.Configuration; using System.Data;

using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient;

public partial class Default2 : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

TextBox1.Focus(); }

protected void Button2_Click(object sender, EventArgs e) {

Response.Redirect("Default.aspx" ); }

protected void Button1_Click(object sender, EventArgs e) {

string Add = " 注册" ;

string constr = ConfigurationManager .ConnectionStrings["sss" ].ToString(); SqlConnection conn = new SqlConnection (); conn.ConnectionString = constr;

if (conn.State != ConnectionState .Open) {

conn.Open(); }

SqlCommand cmd = new SqlCommand (Add, conn);

cmd.CommandType = CommandType .StoredProcedure; //这是告诉程序这是执行存储过程 SqlParameter Parameter1 = new SqlParameter ("@username", SqlDbType .Char, 10); SqlParameter Parameter2 = new SqlParameter ("@psw", SqlDbType .Char, 10); SqlParameter Parameter3 = new SqlParameter ("@sex", SqlDbType .Char, 10); SqlParameter Parameter4 = new SqlParameter ("@age", SqlDbType .Char, 10); SqlParameter Parameter5 = new SqlParameter ("@ulevel", SqlDbType .Char, 10); Parameter1.Value = TextBox1.Text; Parameter2.Value = TextBox2.Text; Parameter3.Value = DropDownList1.Text; Parameter4.Value = TextBox3.Text; Parameter5.Value = DropDownList2.Text; cmd.Parameters.Add(Parameter1); cmd.Parameters.Add(Parameter2);

cmd.Parameters.Add(Parameter3); cmd.Parameters.Add(Parameter4); cmd.Parameters.Add(Parameter5); DataTable table = new DataTable ();

SqlDataAdapter adapter = new SqlDataAdapter (cmd); adapter.Fill(table); conn.Close();

Response.Redirect("Default.aspx" ); } }

代码中引用了注册的存储过程:

SET ANSI_NULLS ON GO

SET QUOTED_IDENTIFIER ON GO

create proc [dbo]. [注册] (

@username char (10), @psw char (10), @sex char (10), @age char (10), @ulevel char (10) ) as begin

insert into 用户表(username , psw , sex , age , ulevel ) values (@username, @psw, @sex, @age, @ulevel) end GO

SET ANSI_NULLS OFF GO

SET QUOTED_IDENTIFIER OFF GO

这是登录界面登录时必须选对用户等级,不然会报错,登录界面代码如下:

using System;

using System.Configuration; using System.Data; using System.Linq; using System.Web;

using System.Web.Security; using System.Web.UI;

using System.Web.UI.HtmlControls; using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page {

protected void Page_Load(object sender, EventArgs e) {

TextBox1.Focus(); }

protected void Button2_Click(object sender, EventArgs e) {

Response.Redirect("Default.aspx" ); }

protected void Button1_Click(object sender, EventArgs e) {

string Add = "CheckUser" ;

string constr = ConfigurationManager .ConnectionStrings["sss" ].ToString(); SqlConnection conn = new SqlConnection (); conn.ConnectionString = constr;

if (conn.State != ConnectionState .Open) {

conn.Open();

}

SqlCommand cmd = new SqlCommand (Add, conn); cmd.CommandType = CommandType .StoredProcedure;

SqlParameter Parameter1 = new SqlParameter ("@username", SqlDbType .Char, 10); SqlParameter Parameter2 = new SqlParameter ("@psw", SqlDbType .Char, 10); SqlParameter Parameter3 = new SqlParameter ("@ulevel", SqlDbType .Char, 10); Parameter1.Value = TextBox1.Text; Parameter2.Value = TextBox2.Text; Parameter3.Value = DropDownList1.Text; cmd.Parameters.Add(Parameter1); cmd.Parameters.Add(Parameter2); cmd.Parameters.Add(Parameter3); DataTable table = new DataTable ();

SqlDataAdapter adapter = new SqlDataAdapter (cmd); adapter.Fill(table);

SqlDataReader dr = cmd.ExecuteReader(); //调用executereader ()方法得到dr 对象 dr.Read();

if (dr.HasRows) //如果有返回记录存在 {

if (DropDownList1.Text == " 管理员" ) {

Session["pass" ] = "admin" ; Response.Redirect("manager.aspx" ); } else {

Session["pass" ] = "guest" ; Response.Redirect("guest.aspx" ); } } else {

Response.Write(""); return ; } } }

代码中使用的登录的存储过程:

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON GO

ALTER PROCEDURE [dbo]. [CheckUser]

@username char (10) , @psw char (10) , @ulevel char (10) AS BEGIN

select * from 用户表where username=@username and psw=@psw and ulevel =@ulevel END

管理员进去之后可以查询航班表,用户表和管理航班,对信息进行添加修改 这里是通过拉控件方式做的,如下图:

通过拉FormView 和SqlDataSource 两个控件,用FormView 绑定SqlDataSource ,然后在SqlDataSource 中配置数据源,然后新建连接如下图:

选择存储过程

点击完成即可,用户表则是GridView 和SqlDataSource 控件,方法类似就不再列举!

管理员界面这里涉及到2个存储过程: dbo. 查看航班表 dbo. 查看用户表

航班表的程序:

ConnectionString ="" SelectCommand ="

"

SelectCommandType ="StoredProcedure">

用户表的程序:

ConnectionString ="" SelectCommand ="

"

SelectCommandType ="StoredProcedure">

这是航班管理界面

管理航班的程序:

通过新建可以插入新的信息!

ConflictDetection ="CompareAllValues"

ConnectionString =""

DeleteCommand ="DELETE FROM [Airplane] WHERE [航班号] = @original_航班号 AND (([机型] = @original_机型) OR ([机型] IS NULL AND @original_机型 IS NULL)) AND (([航空公司] =

@original_航空公司) OR ([航空公司] IS NULL AND @original_航空公司 IS NULL)) AND (([起飞城市] = @original_起飞城市) OR ([起飞城市] IS NULL AND @original_起飞城市 IS NULL)) AND (([到达城市] = @original_到达城市) OR ([到达城市] IS NULL AND @original_到达城市 IS NULL)) AND (([起飞时间] = @original_起飞时间) OR ([起飞时间] IS NULL AND @original_起飞时间 IS NULL)) AND (([到达时间] = @original_到达时间) OR ([到达时间] IS NULL AND @original_到达时间 IS NULL)) AND (([总票数] = @original_总票数) OR ([总票数] IS NULL AND @original_总票数 IS NULL)) AND (([剩余票数] = @original_剩余票数) OR ([剩余票数] IS NULL AND @original_剩余票数 IS NULL))"

InsertCommand ="INSERT INTO [Airplane] ([航班号], [机型], [航空公司], [起飞城市],

[到达城市], [起飞时间], [到达时间], [总票数], [剩余票数]) VALUES (@航班号, @机型, @航空公司, @起飞城市, @到达城市, @起飞时间, @到达时间, @总票数, @剩余票数)"

OldValuesParameterFormatString ="original_{0}"

SelectCommand ="查看信息"

UpdateCommand ="UPDATE [Airplane] SET [机型] = @机型, [航空公司] = @航空公司, [起飞城市] = @起飞城市, [到达城市] = @到达城市, [起飞时间] = @起飞时间, [到达时间] = @到达时间, [总票数] = @总票数, [剩余票数] = @剩余票数 WHERE [航班号] = @original_航班号 AND (([机型] = @original_机型) OR ([机型] IS NULL AND @original_机型 IS NULL)) AND (([航空公司] = @original_航空公司) OR ([航空公司] IS NULL AND @original_航空公司 IS NULL)) AND (([起飞城市] = @original_起飞城市) OR ([起飞城市] IS NULL AND @original_起飞城市 IS NULL)) AND (([到达城市] = @original_到达城市) OR ([到达城市] IS NULL AND @original_到达城市 IS NULL)) AND (([起飞时间] = @original_起飞时间) OR ([起飞时间] IS NULL AND @original_起飞时间 IS NULL)) AND (([到达时间] = @original_到达时间) OR ([到达时间] IS NULL AND @original_到达时间 IS NULL)) AND (([总票数] = @original_总票数) OR ([总票数] IS NULL AND @original_总票数 IS NULL)) AND (([剩余票数] = @original_剩余票数) OR ([剩余票数] IS NULL AND @original_剩余票数 IS NULL))"

SelectCommandType ="StoredProcedure">

这里是系统自动生成的导入存储过程的代码有Update ,Delete ,Insert 插入,删除,修改这些功能的代码

这是用户登陆后的界面,,输入条件后会成功显示如下图:

按机型查询的过程:

ConnectionString =""

SelectCommand ="机型" SelectCommandType ="StoredProcedure">

按航班号查询的过程

ConnectionString =""

SelectCommand ="航班号" SelectCommandType ="StoredProcedure">

按目的地查询的过程

ConnectionString =""

SelectCommand ="目的地" SelectCommandType ="StoredProcedure">

PropertyName ="Text"

Type ="String" />

这3个过程涉及到3个存储过程:

机型的存储过程:

create proc [dbo]. [机型]

(

@机型char (10)

)

as

select * from Airplane where (机型=@机型)

return

航班号的存储过程:

create proc [dbo]. [航班号]

(

@航班号char (10)

)

as

select * from Airplane where (航班号=@航班号)

return

目的地的存储过程:

create proc [dbo]. [目的地]

(

@到达城市char (10)

)

as

select * from Airplane where (到达城市=@到达城市)

return

六、 编程过程中所遇难题:

编程过程中遇到各种各样的问题,其中有3个大问题:

1、 导入数据库后连接不上数据库,查了1个小时的网,对远程连接做了修改并将regedit

中star 的键值修改为2才解决。

2、 导入数据库后不知道怎么样去利用存储过程,随后查了4个小时的代码并且问同学

然后学会了拉控件的方法直接使用存储过程。

3、 使用控件时数据类型出错不能解决,经过查询资料及问同学找出了解决办法,asp

中是string 型的数据所以要转换数据类型才行,最后解决了此问题。还有各种各样小问题就不一一列举

八、 收获:

通过这次学习收获了很多,学会了如何将不同同学做的东西整理在一起做成一个系统,并且学会了查询网上资料与询问老师和同学一起找到解决问题的办法,在存储过程方面问了许多赵慧老师才终于做成功这个系统,知道了分工合作的重要性,许多问题是一个人无法解决的!


相关内容

  • 医院管理系统功能模块说明
  • 医院管理系统功能模块说明 门诊挂号系统 系统概述:主要完成病人的挂号.收费业务,以及医院内部及与院外单位结算: 门诊挂号 普通挂号收费:进行挂号收费.退号退费.废票重打等业务的办理.支持磁卡或IC 卡 挂号及相关操作,可预约挂号,选择医师就诊,能打印明细单. 普通挂号退费:由于挂号登记错误或病人要求 ...

  • 毕业生信息管理系统
  • 摘 要 随着现代信息技术水平的不断提高.计算机技术的不断发展,同时近年来学校的规模也不断扩大,毕业生的数量也不断增加, 学校对管理毕业生信息的要求也越来越高,计算机信息管理系统的出现便使这些问题能很好的得以解决.毕业生查询管理系统是典型的信息管理系统(IMS ),本系统能够大大的减少毕业生信息管理方 ...

  • 航空票务管理系统需求分析说明书
  • 航空票务管理系统 需求分析说明书 班级 网络1111 学号 1111311104.1111311116 姓名 周泽成.于文圣 2013年 10月 08日 1.引言 1.1编写目的 实现一个计算机航空票务系统,完成对航班的管理.机票管理以及登机牌的管理等功能. 1.2背景 ● 系统待开发的名称:航空票 ...

  • 软件工程课程设计小组报告
  • 软件工程课程设计小组报告 机票预订系统 专业名称:___ ___软件工程 ___班 级:_____ _2010级3班__________ 同组成员:_ 李效伦_ [1**********]5 __同组成员:_ 郭瑶瑶_ [1**********]9 __同组成员:_ 韩方杰_ [1********* ...

  • 医药物流毕业论文
  • 物流管理系统----医药物流管理系统 目 录 一.引 言 ...................................................................................................... 2 二.需求分析 ......... ...

  • 飞机航班管理系统
  • 飞机航班管理系统数据库设计 1 概述(设计题目与可行性分析) 1.1 设计题目 本次课程设计的题目是飞机航班管理系统设计.根据给出初始条件建立一个管理飞机航班的数据库,能够从中查询飞机的航班情况,飞行线路,票价,折扣等等情况.并能在数据库中更新维护飞机航班的信息,进行需求分析.概念设计.逻辑设计和物 ...

  • 内蒙古自治区网上申报系统用户手册
  • 文档编号: 第1.0版 分册名称:网上申报分册 第1 册/共1册 内蒙古自治区网上申报系统 用户手册 东软集团股份有限公司 变更履历 版权声明 <内蒙古自治区社会保险网上申报系统用户手册>的版权归沈阳东软集团股份有限公司所有.未经沈阳东软集团股份有限公司的书面准许,不得将本规范的任何部分 ...

  • 一汽-大众培训管理系统DTMS用户手册_经销商_
  • FAW-VW DTMS 一汽-大众经销商培训管理系统 文档位置 这是一个在线文档的打印件.硬拷贝只在打印当天有效.如果对本文档有疑问,请与作者联系. 修改历史 本版日期: 改版号 V1.0 改版日期 2008-02-27 2008-02-27 修改总结 下一版本日期 修改纪录 改版号 改版日期 修改 ...

  • 国浩分享 | 网络尽职调查网站及相关注意事项
  • 作者:国浩律师事务所    顾俊 在非诉项目中,尽职调查是非诉律师的工作重点之一:在过去,非诉律师通常需要通过实地走访.高管访谈.工商查档.行政机关访谈等方式确定被调查公司的基本信息.股权结构.诉讼仲裁.合规经营情况等.而在互联网快速发展的今天,非诉律师通过互联网即可准确.全面.快速地掌握上述信息, ...

  • 校园一卡通项目建设方案.
  • XXX 学院 手机校园一卡通系统 项目计划方案 ##公司 2009年9月 目 录 一.方案建设目标 . .................................................................................................. ...