C#毕业设计——基于C#+asp.net+sqlserver的WEB招投标系统设计与实现(毕业论文+程序源码)——招投标系统

基于C#+asp.net+sqlserver的WEB招投标系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于C#+asp.net+sqlserver的WEB招投标系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 本文对招投标国内外研究现状进行分析;阐述了ASP.Net技术,SQL数据库技术,以及B/S结构;并对招投标系统总体流程,系统的功能,招投标系统的数据库设计进行了相关的描述。采用ASP.Net运作方式和SQL2000的新技术和新工具,基于Web方式的招投标系统设计方法,构建了以B/S为结构的招投标系统。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:8779个字26页
包含内容:整套源码+完整毕业论文


3、关键词:

招投标;数据库;B/S;ASP.Net

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

引言
省略

本系统以保证招投标活动的公平、公正和公开的原则,采用竞争的手段实现大宗货物和服务的采购最优化的方式。

本文阐述的就是在B/S模式下的Web应用程序,运用Visual Studio.NET和SQL Server 等开发工具来设计和实现–完成招投标的过程,其中招标功能模块主要是实现会员资格审核,用户招投标委托管理,发布招标公告,发布中标信息,澄清、修改项目信息,以及添加项目和下载标书。投标功能模块主要是实现投标文件的接收和管理。该系统作为买方和卖方的一个媒介,一方面由买方出价购买,一方面由卖方发布物品信息,由一段时间内的价高者获得此项目,最后由买卖双方进行确认,最终完成买方和卖方之间的成功交易。     
                              
2 系统概述
2.1国内外招投标的发展状况
省略

2.2 招投标过程的概述
在招投标过程中招标过程主要是负责会员资质审核,用户招标信息委托管理,招标文件形成,以及招标文件的管理。发布招标公告,发布招标邀请函 ,发布中标信息 ,澄清、修改招标书,在线下载标书。并针对投标信息管理所需要的更新修改,提供相应的机制。

投标过程主要是进行投标管理和投标后的销毁管理,能够异步和同步参与投标并公开投标结果,并以保存。当投标结束后,根据一定的机制注销投标。

因此从总体来看,目前世界各国和有关国际组织的有关采购法律、规则都规定了公开招标、邀请招标、议标等三种招标投标方式。

3 系统开发相关技术
3.1 系统开发ASP.NET 1.1技术
ASP.NET 1.1(Active Serever Page.NET 1.1)是微软公司推出的Web开发平台。是在Internet环境中连接各种信息,系统与设备的软件架构。.NET系列服务软件最终目标是形成Internet的操作系统,进而控制其他基于次平台上的服务应用软件。从而,企业和客户都能从微软或他的盟友中获得任何有价值的基于Internet的服务。在ASP.NET运行时,公共语言运行(CLR)是整个.NET框架赖以存在的基础,它为Microsfot .NET应用程序提供了一个托管的代码执行环境。它实际上是驻留在内存里的一段代理代码,主要负责应用程序在整个执行期间的代码管理工作,比较典型的有内存管理、线程管理、安全管理、远程管理、即时编译和代码强制安全类型检查等。

3.1.1 .NET的组成
.NET主要由3个部分组成,下面分别对这3个部分进行简单的介绍。
(1).NET战略,.NET战略基于这样一种想法,即所有的设备在将来都会通过Internet连接在一起,而.NET就会为Internet网络上提供的一种服务。
(2).NET Framework,.NET Framework为ASP.NET提供了具体的服务和技术,方便了开发人员对应用程序的开发,同样也满足了已经连接到Internet上用户的需要。
(3)Windows服务器系统,Windows服务器系统是指像SQL Server 2000 等数据库一样,由.NET Framework应用程序使用的服务器产品。

3.1.2 .NET技术
(1).NET Framework为 Microsoft 公司建立 .NET战略提供了基础。所有设备都将在标准化或共享协议的基础赏识用类似XML这样的公共语言,在不同的操作系统和设备上执行众多软件。
(2).NET Framework提供了各种基础服务,而这些服务在Microsoft公司看来是实现其.NET战略的基本所在。要使网络上的两端交换数据库和连网工作更加容易,最好有一个全球网络和类似XML这样的开发标准。

3.2 SQL数据库技术
随着数据库技术的不断完善,用户数据的不断积累,用户的需求也不断提高,在此之上,更高级的应用应运而生,这包括已经成熟的数据仓库应用、广为接受的商业智能(BI)应用、以及方兴未艾的SOA等。当数据库能够容纳几乎所有数据之后,我们必然面临的一个问题是如何快速获得我们需要的数据。

当用户访问数据库时,怎样减少用户的等待,快速返回用户需要的数据是所有数据库都需要解决的问题。这也就需要另外一项高级增强–面向搜索的增强,从某种意义上说面向需求的增强-数据分析和挖掘也正是这个方向上的高级应用之一。目前各数据库在这一方面都不够完善,我们相信在未来,数据库能够容纳和存储各种数据之后,必然向快速搜索和查询方面进行增强。

3.3 B/S技术
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着 Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端 (Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

以目前的技术看,局域网建立的B/S结构网络应用,通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式来访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

4 系统总体分析
4.1 系统总体功能模块
网上招投标系统要实现的主要功能是:用户注册,项目招标信息发布,招标信息查询,项目投标单位查看,项目竞标。在系统中,非注册用户可以浏览竞拍中的项目,但不可以参与项目拍卖和竞拍活动。当注册为本系统的会员后,可以实现招标和竞标等相关操作。下面是系统的总体功能模块如图4-1所示。

在这里插入图片描述

图4-1 系统总体功能结构

在页面浏览器中第一次进入该系统,所看到的是默认的首页,在该页面中主要包括一个系统功能简介和登录、注册等的链接。如果用户还没有自己的帐号,需要首先进行注册,单击首页中相应的链接,进入注册页面。用户正确填写注册信息后,系统将页面自动跳转到主页面,标记用户已经登录。对于已经注册过的用户,可以单击系统首页中的“登录”链接,进入登录界面,此时用户使用正确的帐号和密码登录系统后,页面将自动跳转到登录用户的欢迎界面。该页面对登录用户显示欢迎信息,并提供了一个简单的可供选择的菜单,通过该菜单,用户可以使用系统所提供的各种功能。本系统最主要的功能是招标与竞标,对于某些曾经有过交易记录的用户,该页面同时还会显示出用户在以前访问站点过程中为哪些项目竞过价。若用户单击该列表中的某个项目时,系统会弹出是否确认交易,如果用户确认,那么就可以完成该项目的交易了。

4.2 用户注册模块
用户注册流程,当用户还没有成为本系统的会员时。如果需要成为会员,那么就需要注册为本系统的会员,才能进行相关的服务操作。如图4-2所示,此模块提供了用户信息的录入功能,首先在将用户注册信息添加到数据库的应用中时,调用了存储过程。实现了用户注册的功能。
在这里插入图片描述

图4-2 用户注册模块流程

4.3 标书下载模块
用户在注册为会员后,通过使用正确的帐号和密码即可登录系统。但是没有注册会员的用户只能浏览项目列表,但不能进行任何相关的操作。此时用户通过注册链接,单击注册进行注册为会员。此时用户就可以通过上述的两种方式进入系统,通过浏览项目列表后,若想采购某种项目,那么就需要下载标书了,如图4-3所示。
在这里插入图片描述

图4-3 标书下载模块流程

4.4 项目信息发布模块
项目信息发布管理流程,如图4-4所示。此模块提供了项目信息的录入,编辑等功能。若想发布项目信息,首要条件是用户已经成为系统会员,然后可以添加要竞拍的项目,并编辑以添加项目的信息。

在这里插入图片描述
图4-4 项目信息发布模块流程

4.5项目竞标模块
项目竞标模块的流程,如图4-5所示。此模块提供了用户从竞标项目列表到交易完成的全部功能。竞标结束时,会判断谁为出价最高的用户,此用户为竞拍此项目的成功者。竞拍成功的用户将会联系卖方,进行项目的交易。

在这里插入图片描述

图4-5 项目竞标模块的流程

5 数据库结构设计与实现
5.1 数据库逻辑结构设计

在这里插入图片描述

图5-1 设计关系模型

5.2 数据表的创建
在该系统中,作为买方和卖方的一个媒介,一方面由卖方发布项目的信息,另一方面由买方出价购买,由一段时间内的价高者获得此项目,最后买卖双方进行确认,完成网络销售的过程。因此该系统要满足以下的数据库需求分析:

招标投标系统需要提供信息的查询,保存,更新以及删除等功能,这就要求数据库能充分满足各种信息的输入和输出,通过上述系统功能的分析,根据招标投标系统的需求,总结如下的需求信息:

(1)用户需要注册才能进行招标投标等一系列的相关操作。
(2)在项目中,包括待招和已交易的项目信息。
(3)在投标中需要包含对每个项目的出价的信息。
(4)包含每个已被出价的项目和出价者的ID号。
(5)另外还需要包含用户招标的项目信息。
所以在该系统中共需要创建5个数据表,用于存放网络招投标管理系统所需要的数据。

在数据库模型中不仅列出了各个表中的所有字段,同时也标出了各表的主键和外键等重要的信息,如果仔细阅读前面关于系统功能分析及系统流程的介绍之后,一定可以很好地理解这些数据表中各字段所代表的含义,同时也应该思考为何各表时间的关系。

下表5-1至5-6是每个数据表的简要描述,以及它们与数据库中其他表关系的说明。在解决方案中依次具体的思考了每个表中字段的数据类型、键和null值等内容。下面是系统数据表5-1至5-6的简要描述。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 创建表的脚本文件
数据表在创建完毕后,前面已经介绍了所有表数据表的结构、内容及各表之间的关系,还要生成SQL脚本文件。这里选择的是使用可视化工具还是使用SQL Server脚本文件在查询分析器中直接运行来创建一个表的脚本文件。

5.4 存储过程
为了遵循好的设计原则,可以使用良种方法对这些表进行访问。如创建一组存储过程,存储过程是Web应用程序后台数据存储的组成部分。应用程序与存储过程通信,而存储过程则与表通信。这意味着如果经常需要改变表的内容,就必须确保存储过程以同样的方式工作,这样才能确保应用程序继续工作。而且使用存储过程访问表比直接访问更快。

本系统的存储过程比较多,前面已经详细介绍各个存储过程的功能,下面将本系统的整个存储过程做简要的描述,如下表5-7所示。

表5-7 存储过程表
在这里插入图片描述

6 系统总体实现
本系统使用Pagelet控件技术编写了Header.ascx和Footer.ascx两个用户控件。其中Header.ascx控件用来显示系统标题,Footer.ascx控件用来显示系统的版本和版权信息。

本系统还主要提供了那些与项目基本信息相关的数据库操作方法,在项目类中首先为了用户参与招标投标,其中主要的部分是为某个项目添加一个招竞信息,在添加项目的时候通过对项目发布,项目信息的说明,以及对项目信息的修改,删除,更新等操作来实现了用户在本系统中的招标功能,其功能的实现主要是在数据库中对相关的数据与信息进行修改,删除,更新等,即实现发布招标信息使用户参与招标。

此外,当用户登录本系统后,可以对一系列项目进行浏览,当用户欲求购项目时,那么就需要参与竞标,在参与竞标之前需要对标书进行下载等工作。其页面显示了一个表,该表对每个当前招竞标的项目作了简单的说明。注册用户可以选择某个特定的待招项目,单击后到达BidItem.aspx页面查看别人的竞价或者自己欲对该项目出价,其功能的实现主要是对一个项目出价,出价后利用数据绑定将出价信息写入数据库,在数据库中通过对出价信息进行比较,将出价最高的用户判定为竞标获胜者,再从数据库中将数据读取出来并将用户参与竞标的项目发布在系统的主页面上,同时还公布出参与竞标的用户的详细信息。

6.1 Web.Config文件
主要介绍Web.Config文件为了避免页面重复连接数据库操作的设置。

<appSettings>
   <add key="ConnectionString" Value="
Data source=(local);database=bids;
    User id=sa;Password=5201314" />
</appSetting>

6.2 系统首页面
该页面为系统首页(图6-1系统首页),提供了登录、注册和浏览列表的链接。该页面非常简单,如果用户已经是系统会员,那么只要输入正确的用户名和密码就可以进入改系统了。如果用户不是会员,那么用户只要按照要求填写相关的信息就可以成功的注册为本系统会员。在不是会员的情况下,用户可以浏览本系统中正在招标的相关信息,但是不能进行任何相关的操作。

在这里插入图片描述

图6-1 系统首页

6.3用户注册和登录页面的实现
用户注册页面主要调用Person类提供了用户的详细信息相关的各个属性。这些属性分别与数据表中的字段相对应。在首页面单击“注册”链接进入该页面,此页面不仅可以让用户注册添加个人用户信息,同时它也是修改注册信息的界面。在该页面中使用了几个Panel组件,通过设置它们的Visible属性可以实现上面的操作。在写入数据库时,首先调用了Tools类中的public static bool IsLoggedIn()方法来实现判定用户是否已经登录,这样才能进行安全验证,确定用户是否具有权限访问某些页面。如果没有登录需要注册,则添加用户详细信息,通过Customer方法和系统引用文件.dll向数据库添加注册信息。

下面是Person类设计方案方法的定义和描述。如下表6-2所示:

表6-2 Person类设计方案方法的定义和描述
在这里插入图片描述

其页面和几个事件代码如下图6-2所示::

在这里插入图片描述

图6-2 用户注册页面
下面主要介绍的是注册页面中核心代码部分,其代码如下:

private string Process;
//判定是否为注册用户
	   private void Page_Load(object sender, System.EventArgs e)
		{
            if (Tools.IsLoggedIn())
            {
                Process = "MODIFY";
                Bid.PersonDetails myPersonDetails =
                 new Bid.PersonDetails();
                Bid.Person obj = new Bid.Person();
                    myPersonDetails=obj.GetPersonDetails
                   (Request.Cookies["email"].Value);
                txtFamilyName.Text = myPersonDetails.FamilyName;
                txtGivenName.Text = myPersonDetails.GivenName;
                txtEmail.Text = Request.Cookies["email"].Value;
                txtPwd.Text = myPersonDetails.Password;
                txtAdd1.Text = myPersonDetails.StreetAddress1;
                txtAdd2.Text = myPersonDetails.StreetAddress2;
                txtCity.Text = myPersonDetails.City;
                txtState.Text = myPersonDetails.State;
                txtZip.Text = myPersonDetails.PostalCode;
                txtCountry.Text = myPersonDetails.Country;
                txtEmail.Enabled = false;
                obj = null;
                GuestMenu.Visible = false;
                RegisteredMenu.Visible = true;
            }
            else
            {

                Process = "ADD";

                GuestMenu.Visible = true;
                RegisteredMenu.Visible = false;
            } 
		}
//添加用户信息
	private void btnSubmit_Click(object sender, System.EventArgs e)
		{
			if (Page.IsValid)
			{
				Bid.Person obj = new Bid.Person();
				string strStatus;

				if (Process == "ADD")

				{
					strStatus = obj.AddCustomer(txtFamilyName.Text,
						txtGivenName.Text,
						txtEmail.Text,
						txtPwd.Text,
						txtAdd1.Text,
						txtAdd2.Text,
						txtCity.Text,
						txtState.Text,
						txtZip.Text,
						txtCountry.Text);
					try
					{
						Int32.Parse(strStatus);
			Response.Cookies["GivenName"].Value= txtGivenName.Text;
			Response.Cookies["email"].Value = txtEmail.Text;
			Response.Cookies["PersonID"].Value = strStatus;
			Response.Redirect("MenuForRegisteredUsers.aspx");
					}
					catch (FormatException ex)
					{
						lblMsg.Text = strStatus;
					}
				} 
				else
				{
        // 更新用户信息
				strStatus=obj.ModifyCustomer(txtFamilyName.Text,
						txtGivenName.Text,
						txtEmail.Text,
						txtPwd.Text,
						txtAdd1.Text,
						txtAdd2.Text,
						txtCity.Text,
						txtState.Text,
						txtZip.Text,
						txtCountry.Text);

					if (strStatus == "1")
					{
						Response.Cookies["GivenName"].Value=
                       Request.Form["txtGivenName"];
			Response.Cookies["email"].Value=txtEmail.Text;
			Response.Redirect("MenuForRegisteredUsers.aspx");
					}
					else if(strStatus.Length > 1)
					{

						lblMsg.Text = "Update Failed! " + strStatus;

					}
				}
			}
		}
	}
}

用户登录页面主要是为会员提供服务,在用户已经成为会员时,只要该用户输入正确的用户名和密码,就能进入系统,进行一些相关的具体操作。因此,重点是按钮的单击事件响应程序,其功能主要是通过判定用户输入的用户名和密码是否和曾经注册时写入在数据库中的数据是否相同,来实现的登录功能。该页面(图6-3用户登录页面)与代码如下:
在这里插入图片描述

图6-3 系统登录页面

private void btnSubmit_Click(object sender, System.EventArgs e)
		{
			if (Page.IsValid)
			{
				Bid.Person obj = new Bid.Person();
				Bid.PersonDetails myPersonDetails =
                new Bid.PersonDetails();
				myPersonDetails = 
                obj.Login(txtEmail.Text, txtPwd.Text);
				if (myPersonDetails.PersonID != 0)
				{
					Response.Cookies["email"].Value = txtEmail.Text;
				    Response.Cookies["GivenName"].Value =
                    myPersonDetails.GivenName;
		              Response.Cookies["PersonID"].Value =
                        myPersonDetails.PersonID.ToString();
					Response.Redirect("MenuForRegisteredUsers.Aspx");
				}
				else
					lblMsg.Text = "Login failed. Please try again.";
			}
		}
	}
}

6.4招竞标页面
该页面显示了一个表,该表对每个当前招竞标的项目作了简单的说明。从该页面中,注册用户可以选择某个特定的待招项目,单击后到达BidItem.aspx页面查看别人的竞价或者自己为该项目出价。该页面功能的实现主要是对一个项目出价后,利用数据绑定将出价信息写入数据库,通过都出价信息的比较,将出价最高的用户判定为竞标获胜者,并发布出该用户的信息。该页面(图6-4项目工程)如下:
在这里插入图片描述

图6-4 项目工程
该页面项目类的数据层设计的方法和Page_Load主要事件处理程序与页面如下(图6-4项目工程):
表6-2列出了Item数据层类的设计方案方法的定义和描述。
       
表6-2 Item类设计方案方法的定义和描述
在这里插入图片描述

在介绍了该类的方法与页面实现后,下面主要介绍的是该页面中核心代码部分,其代码如下:

private void Page_Load(object sender, System.EventArgs e)
		{
			if (!Page.IsPostBack)
			{
				BindGrid();
//通过Tools类中的:public static bool IsLoggedIn()方法,并用该方法去判断用户是否已经登录。 
				if (Tools.IsLoggedIn())
				{
					lblUserName.Text = "Welcome" +
         Request.Cookies["email"].Value +"";
					GuestMenu.Visible = false;
					RegisteredMenu.Visible = true;
				}
				else
				{
					lblUserName.Text = "Welcome guest";
					GuestMenu.Visible = true;
					RegisteredMenu.Visible = false;
				}
			}
		}
	 private void BindGrid()//创建项目对象信息,添加一个招投标信息。 
		{
			Bid.Item objItemList = new Bid.Item();
			myItems.DataSource = objItemList.ViewItemsForSale();
			myItems.DataBind();
		}
		public string FormatUrl(Int32 intID, string strName, string strDesc)
		{ 
			if (Tools.IsLoggedIn())
				return "BidItem.aspx?itemid=" + intID.ToString() + 
                "&itemname=" +
					Server.UrlEncode(strName) + "&itemdesc=" +
					Server.UrlEncode(strDesc);
			else
				return "";
		}
	}
}

以上只是本系统中类的实现,以及涉及到的页面及代码的实现,由于篇幅有限,因此就不一一多举了。

结 论
本文主要分析了实现招投标系统的主要方法,并对招投标的主要功能做了描述。同时设计并实现了一个简单的招投标系统。该系统是基于B/S下利用Visual Studio.NET和SQL开发的,是一个实验性的系统。对系统总体流程进行了说明,对系统的功能进了了描述;招投标系统的数据库设计;系统界面的设计与代码实现。

此本系统开发了一个网络招标投标系统,必要重要的内容是三个通用模块即三个类文件,这三个类文集成了系统中数据库应用的方法,大部分的应用程序都是通过掉用其中的方法完成操作的。

其中对数据的操作,基本上都是调用存储过程完成的。存储过程的应用对于系统的维护和提高速度都具有重要的作用。

参考文献
[1] 吉根林,崔海源.ASP.NET程序设计教程[M].北京:电子工业出版社,2004。
[2] 东方人华.Visual C#.NET Web应用程序设计入门与提高[M].北京:清华大学出版社, 2005。
[3] 杨浩.ASP.NET.1.1入门经典[M].北京:清华大学出版社, 2005。
[4] 刘振岩,刘慧敏,王欢.ASP.NET数据库开发[M].北京:清华大学出版社, 2004。
[5] 刘斌,张军.ASP.NET+SQL Server动态网站开发案例精选[M].北京:清华大学出版社,2005。
[6] 张阅廷,王小科,许文武.ASP.NET数据库系统开发完全手[M].北京:人民邮电出版社,2007。
[7] 李明刚, 肖建.ASP.NET Web 站点高级编程范例[M].北京:清华大学出版社,2004。
[8] 吉根林,崔海源.Web程序设计[M].北京:电子工业出版社,2002。
[9] 李伟红.SQL Server 2000数据库及应用[M].北京:清华大学出版社,2005。

致 谢
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于C#+asp.net+sqlserver的WEB招投标系统设计与实现(源码+文档)_C#_BS架构_招投标系统.zip
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值