酒店客房管理系统(doc 44页).docx
酒店客房管理系统摘 要:随着本国市场经济的迅速发展和人们生活水平的不断提高,宾馆酒店业的竞争越来越激烈。要想在竞争中取得优势,就必须在经营管理,产品服务等方面提高服务管理意识。面对餐饮经营中起决定作用的餐饮管理,面对庞大的信息量,就需要一个酒店客房管理系统来提高酒店理效率。因此,选择目前应用最广的Windows操作系统作为开发、测试和运行的平台,用Visual S 2005作为软件开发工具,作为编程语言,SQL Server 2000作为数据库支持,开发一个方便上手且功能强大的酒店客房管理系统软件,以提高酒店管理水平。关键词:酒店客房管理系统,数据库设计,程序设计The Design and Realization of the Hostel Management System Based on the Abstract:With the rapid development of the domestic economy and the improvement of peoples life standard, the competition between hotel industry is becoming keener and keener. It is necessary to improve since of service and management on management, product, etc in order to get the advantage in the competition. Facing the room administration which plats the decisive role on the room management as well as the large information, it needs a hotel management system to improve room management efficiency.Therefore, the best way to improve the level of management is to explore a convenient and powerful systematic software of hotel management. That is to choose the widely used Windows operation system as a platform of exploration, test and operation, the Visual S 2005 as a tool of software development, as programmer-edited language, SQL Server 2000 as the supporter of database. Its main function includes: registration, room reservation , settlement of refunding, room situation check, tourists information check, etc .key words:Hostel Management System, , database design, programmer design目录前 言1第一章 绪 论21.1 课题背景21.2 课题研究的目的和意义21.3 课题的主要内容2第二章 开发工具和开发环境32.1 SQL 语言32.1.1 SQL 概述32.1.2 SQL 语言的组成32.2 SQL Server 2000 简介32.3 ASP.NET简介42.4 ADO 数据访问介绍52.4.1 ADO 不依赖于连续的活动连接52.4.2 ADO 的优点8第三章 系统需求分析及总体设计103.1 系统功能分析103.2 数据库结构设计113.2.1 系统数据流程图113.2.2 实体关系图123.2.3 数据库逻辑结构设计14第四章 系统详细设计与实现154.1 登陆界面154.2 主界面164.3 房间类型维护174.4 客户登记界面194.5 房间入住界面204.6 查询房间入住界面224.7 用户管理23第五章 系统测试245.1 系统测试的目的245.2 系统测试方法24结 论25参考文献26致 谢27前 言互联网的不断发展是推动科技发展的最直接的动力之一,而在这种趋势之下,各种管理系统也必须得跟上时代的步伐,新的需求在不断的产生,管理系统也得跟着需求发展。对于酒店管理来说,利用先进的管理手段,提高餐饮的管理水平,已是形势所趋。过去,Visual S 主要用于创建有着丰富用户界面(包括按钮、列表以及下拉列表框)的应用程序。Visual S 的编程人员在程序设计中首次实现完全面向对象的能力。由于ASP.NET面向对象的卓越设计,使它成为广大编程人员的最理想的选择之一。酒店客房管理系统是基于ASP.NET编程语言在Microsoft的Visual S平台下开发的,运用了SQL Server 2000数据库。强大的数据库支持,能完成大量的数据处理,使得系统更加稳定安全。42第一章 绪 论1.1 课题背景随着本人国市场经济的迅速发展和人们生活水平的不断提高,宾馆酒店业的竞争越来越激烈。要想在竞争中取得优势,就必须在经营管理,产品服务等方面提高服务管理意识。面对餐饮的经营起决定作用的是餐饮的管理。如何利用先进的管理手段,提高餐饮的管理水平,是每一个酒店管理者所面临的重要课题。简单的服务标准已经不是制胜的法宝,只有管理做到最细微之处,才能让顾客体会到酒店服务的高标准,高质量,而准确,快捷,周全往往就是最基本的成功要素。面对信息时代的挑战,利用科技手段提高企业管理无疑是一条行之有效的途径。因此采用电脑管理业务,财务等诸多环节已成为宾馆酒店业快速发展的先决条件。世界经济已从工业化社会进入信息化社会,西方发达国家已经进入相当发达的信息化阶段,而本国的信息产业目前尚处于起步阶段。信息高速公路和经济信息化,无疑将对人类社会的经济发展带来根本性的变化,对社会各行各业的生产、工作和管理方式带来深刻的变化, 对包括酒店在内的许多机构无疑是一个严峻的挑战。1.2 课题研究的目的和意义国内酒店业的应用系统不同,各家供应商的软件也各不相同。对于一家酒店,如果各部门使用的是不同的平台、不同的软件,当员工进行软件操作时,需要学习各种软件,这样不但使员工的学习成本增高,也同时影响酒店的效率。这样就需要一个方便上手且功能强大的管理软件能解决这些问题,让员工迅速上岗,减少成本,增加收益。因此,制作一个酒店客房管理系统来解决这些问题已是势在必行。针对酒店的具体业务,主要是酒店理,为用户提供迅速高效的服务,减免手工处理烦琐以及误差,并及时准确的反映酒店的工作状况,从而提高酒店管理的服务质量,使酒店获得更好的经济效益。1.3 课题的主要内容本酒店客房管理系统数据库选择的是SQL Server 2000,开发环境是Microsoft的Visual S,编程语言ASP.NET。基本思想是把开发过程分成:项目计划、需求分析、详细设计、代码实现、系统测试以及系统维护等进行完成。酒店客房管理系统的开发设计,包括数据库结构设计及程序设计。该系统具有登记、订房、退餐、结算、查看客人信息等基本功能,能够用于一般的中小型酒店餐饮管理。要求具备对某一领域熟悉的情况下去寻找相关资料并通过自学逐步掌握该门知识的能力。第二章 开发工具和开发环境2.1 SQL 语言SQL是英文Structured Query Language的缩写,即结构化查询语言,它是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制4个方面,是一个通用的功能极强的关系数据库语言。2.1.1 SQL 概述SQL语言是1974年由Boyce和Chamberlin 提出的,1975年至1979年IBM公司SanJose Research Laboratory 研制的关系数据库管理系统原形系统System R 实现了这种语言,由于它功能丰富,语言简洁,使用方法灵活,倍受用户和计算机业界的青睐,被众多的计算机公司和软件公司采用。经过多年的发展,SQL语言已成为关系数据库的标准语言。2.1.2 SQL 语言的组成SQL 语言主要由以下几部分组成: 数据定义语言DDL Data Definition Language 数据操纵语言DML Data Manipulation Language 数据控制语言DCL Data Control Language 其它语言要素Additional Language ElementsSQL 语句数目种类较多,其主体大约由40 条语句组成。2.2 SQL Server 2000 简介SQL Server 是一个关系数据库管理系统,它最初是由Microsoft、Sybase 和Ashton- Tate三家公司共同开发的。于1988 年推出了第一个OS/2 版本,在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。MS SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。SQL Server 是定位在Server 上的系统,它只负责提供和储存数据就像汽车的引擎,它只提供汽车的动力,其它功能由前端设计工具如FoxPro 、Delphi、 Power Builder、 Visual S 、Visual S等来处理,因此我们一般称SQL Server、Oracle、Informix 等数据库系统为数据库引擎。2.3 ASP.NET简介Visual S 2005,是微软公司推出的可视化编程工具MSDN之一, 是目前世界上使用最广泛的程序开发工具。它的快捷的开发速度, 简单易学的语法, 体贴便利的开发环境,不愧为一款优秀的编程工具, 是初学者的首选。另外ASP.NET提供的是可视化的开发环境,我们可以象搭积木一样构建出程序的界面,而且ASP.NET提供了丰富的控件组,省去了我们自己写代码实现这些效果的麻烦,这样我们就能把更多的精力放在程序功能的实现上,所以用起来方便。在ASP.NET中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一个对象,每个对象都是可视的。ASP.NET功能特点如下:1具有面向对象的可视化设计工具 在ASP.NET中,应用面向对象的程序设计方法(OOP),把程序和数据封装起来视为一个对象,每个对象都是可视的。程序员在设计时只需用现有工具根据界面设计要求,直接在屏幕上“画”出窗口、菜单、按钮、滚动条等不同类型的对象,并为每个对象设置属性。程序员的编程工作仅限于编写相关对象要完成的功能程序,因而程序设计的效率可大大提高。 2事件驱动的编程机制 事件驱动是非常适合图形用户界面的编程方式。在图形用户界面的应用程序中,是由用户的动作即事件掌握着程序运行的流向,每个事件都能驱动一段程序的运行。程序员只要编写响应用户动作的代码,而各个动作之间不一定有联系。 3提供了易学易用的应用程序集成开发环境 在ASP.NET集成开发环境中,用户可设计界面、编写代码、调试程序,直至把应用程序编译成可执行文件在Windows中运行,使用户在友好的开发环境中工作。 4结构化的程序设计语言 ASP.NET具有丰富的数据类型和结构化程序结构,作为一种程序设计语言,它还有如下一些特点: (1)强大的数值和字符串处理功能 (2)丰富的图形指令,可方便地绘制各种图形 (3)提供静态和动态数组,有利于简化内存的管理 (4)过程可递归调用,使程序更为简练 (5)支持随机文件和顺序文件的访问 (6)提供了一个可供应用程序调用的包含多种类型的图标库 (7)具有完善的运行出错处理 5支持多种数据库系统的访问 利用数据控件可访问的数据库系统有:Microsoft Access、Btrieve、DBASE、Microsfot FoxPro和Paradox等,也可以访问Microsoft Excel、Lotus1-2-3等多种电子表格。 6支持动态数据交换(DDE)、动态链接库(DLL)和对象的链接与嵌入(OLE)技术 7完备的HELP联机帮助功能 ASP.NET程序设计的概念就是面向对象的概念,对象就是数据(DATA)和代码(CODE)互相结合的综合体。Windows上面的每一个图标,包括窗口本身都是对象,如果没有任何事情发生,对象处于停顿状态。当存在外来事件时,程序段执行,它的执行是由外来事件决定的。因此是“事件”驱动的。与Windows环境下的软件一样,在ASP.NET中,利用帮助菜单和F1功能键,用户可以随时方便地得到所需要的帮助信息。ASP.NET帮助窗口中显示了有关的示例代码,通过复制、粘贴操作可获取大量的示例代码,为用户的学习和使用提供了极大的方便。 2.4 ADO 数据访问介绍使用 ADO 开发应用程序时,将有操作数据的各种要求。在某些情况下,可能只是想在窗体上显示数据。在其他情况下,则可能需要设计一种方式来与另一个公司共享信息。无论对数据进行怎样的操作,了解 ADO 中的数据结构、主数据组件概念和组件组合方式是很有用的。2.4.1 ADO 不依赖于连续的活动连接在传统的客户端/服务器应用程序中,组件将建立与数据库的连接,并在应用程序运行过程中使连接保持打开状态。出于各种原因,该方法在许多应用程序中是不实用的: 打开的数据库连接占用宝贵的系统资源。在大多数情况下,数据库只可以维持少量的并发连接。维持这些连接的系统开销将降低应用程序的总体性能。 类似地,需要打开的数据库连接的应用程序极难按比例扩展。对于没有很好地按比例扩展的应用程序而言,也许几个用户使用它时执行效果是可以接受的,但如果有数百个用户使用它时其效果也许就不能被接受了。ASP.NET Web 应用程序尤其需要能够很轻松地进行扩展,因为 Web 站点的通信量可能会在非常短的时间内突增几个数量级。 在 ASP.NET Web 应用程序中,组件彼此之间本来就是不连接的。浏览器从服务器请求一页;在服务器完成处理并发送该页后,服务器即不再与浏览器有任何连接,直到下一次请求为止。在这些情况下,维持打开的数据库连接是不可行的,因为没有办法知道数据使用者(客户端)是否需要进一步的数据访问。 基于始终连接数据的模型可能使得使用连接结构在应用程序和组织边界之间交换数据变得困难且不实际。如果两个组件需要共享相同的数据,则二者均必须连接,或者必须为这两个组件设计一种方式以相互传递数据。 出于所有这些原因,使用 ADO 进行数据访问是以有节制使用连接的结构为中心进行设计的。应用程序连接到数据库的时间仅足够获取或更新数据。因为数据库并未被大部分时间空闲的连接占用,所以它可以为更多用户提供服务。使用数据命令执行数据库交互若要在数据库中执行操作,应执行 SQL 语句或存储过程(它包括 SQL 语句)。使用 SQL 语句或存储过程读写行并执行聚合函数,例如添加或求平均值。使用 SQL 语句或存储过程创建或修改表或列、执行事务等。在 ADO 中,使用数据命令打包 SQL 语句或存储过程。例如,想要从数据库读取一组行,则创建一个数据命令并用 SQL Select 语句的文本或获取记录的存储过程的名称配置它。如果要获取这些行,则执行以下操作: 1.打开一个连接。 2.按以下顺序调用命令的执行方法: a.执行该命令引用的 SQL 语句或存储过程。 b.然后关闭连接。 连接保持打开的时间仅足够执行语句或存储过程。 在调用命令的执行方法后,它将返回一个值。更新数据库的命令返回所影响的行数;其他类型的命令返回一个错误代码。如果该命令使用 SELECT 语句查询数据库,则它返回一组行。安全说明 当使用 CommandType 属性设置为 Text 的数据命令时,请对从客户端发送过来的信息进行仔细检查,然后再将它传递给数据库。恶意用户可能会试图发送(插入)修改过的或其他 SQL 语句,以获得未经授权的访问或破坏数据库。在将用户输入内容传输到数据库之前,应始终确认这些信息是有效的;如果可能的话,始终使用参数化查询或存储过程,这是最佳措施。如果要执行多个操作(例如,读取一些行,然后更新它们),则可以使用多个数据命令,每个操作一个命令。每一操作分别执行。例如,要读取多行,应打开连接,读取这些行,然后关闭该连接。如果要更新数据,再次打开连接,执行更新,然后再次关闭该连接。数据命令可以包括多个参数(具体而言,参数对象的集合),使用这些参数创建类似以下形式的参数化查询:Select * From customers Where (customer_id = customerid)然后在运行时设置这些参数并执行命令以返回或更新所需数据。数据可被缓存到数据集中。最常见数据任务是从数据库检索数据并对数据进行某些操作:显示数据、处理数据或将数据发送给另一个组件。经常地,应用程序需要处理不止一条记录,而是一组记录:例如客户列表或今天的订单。通常应用程序所需的该组记录来自多个表:我的客户及其所有订单;所有名为"Smith"的作者及他们写的书;以及其他类似的相关记录组。获取了这些记录后,应用程序通常将它们成组使用。例如,应用程序可以允许用户浏览名为"Smith"的所有作者,检查一个 Smith 的书,然后检查下一个 Smith 的书,等等。在许多情况下,每次应用程序需要处理下一条记录时都返回到数据库是不切实际的。(这样做可能会失去将打开连接的需求降至最低所带来的许多好处。)因此解决方案就是临时存储从数据库检索的记录,然后使用该临时集。这便是数据集的概念。数据集是从数据源检索的记录的缓存。它的工作方式如同虚拟的数据存储区:数据集包含一个或多个表(这些表基于实际数据库中的表),并且它可以包含有关这些表之间的关系和对表可包含数据的约束的信息。数据集内的数据通常是数据库中内容的非常精简的版本。但是,可以用与操作实际数据十分类似的方式操作数据集。这样操作时,将保持与数据库的不连接状态,使数据库可以自由执行其他任务。如果经常需要更新数据库中的数据(尽管不会像从数据库检索数据那么频繁)。可以在数据集上执行更新操作,并且这些更新可以直接写到基础数据库。数据集是数据的被动容器这一点很重要。若要实际从数据库获取数据和(可选)将数据写回数据库,请使用数据适配器。数据适配器包含一个或多个数据命令,这些命令用于填充数据集中的单个表并更新数据库中的相应表。(数据适配器通常包含四条命令,分别用于选择、插入、更新和删除数据库中的行。)因此,每当调用数据适配器的 Fill 方法时,它都可能执行 SELECT au_id, au_lname, au_fname FROM authors 之类的 SQL 语句。因为数据集实际上是数据库数据的私有副本,所以它不一定反映数据库的当前状态。如果想要查看其他用户进行的最新更改,可以通过调用适当的 Fill 方法刷新数据集。使用数据集的一个便利之处是组件可以根据需要交换数据集。例如,中层的某个业务对象可以创建和填充一个数据集,然后将它发送给应用程序中其他位置处的另一个组件以供处理。该功能意味着组件不必分别查询数据库。数据集独立于数据源尽管数据集是作为从数据库获取的数据的缓存,但数据集与数据库之间没有任何实际关系。数据集是容器;它由从数据适配器执行的 SQL 命令或存储过程填充。由于数据集不直接绑定到数据源,所以它是来自多个源的数据的好的集成点。例如,数据集内的某些数据可能来自数据库,而它的其他部分可能来自另一个数据库或电子表格之类的非数据库源。数据集内的某些数据可能来自另一个组件所发送的流。一旦数据在数据集内,则不管它的原始源是什么,都可以使用一致的对象模型对它进行操作。数据保持为 XML数据需要从数据存储区移动到数据集以及从数据集移动到各种组件。在 ADO 中,传输数据的格式是 XML。类似地,如果需要保持数据(例如保持到文件中),则将其存储为 XML。如果有 XML 文件,则可以像使用任何数据源一样使用它,并从它创建数据集。实际上,在 ADO 中,XML 是数据的基本格式。ADO 数据 API 自动用数据集内的信息创建 XML 文件或流,并将它们发送给另一个组件。第二个组件可以调用类似的 API 将 XML 读回数据集。2.4.2 ADO 的优点与 ADO 的早期版本和其他数据访问组件相比,ADO 提供了若干好处。这些好处分成以下几个类别:互操作性ADO 应用程序可以利用 XML 的灵活性和广泛接受性。由于 XML 是用于在网络中传输数据集的格式,因此可以读取 XML 格式的任何组件都可以处理数据。实际上,接收组件根本不必是 ADO 组件:传输组件可以只是将数据集传输给其目标,而不考虑接收组件的实现方式。目标组件可以是 Visual Studio 应用程序或无论用什么工具实现的其他任何应用程序。唯一的要求是接收组件能够读取 XML。作为一项工业标准,XML 正是在谨记这种互操作性的情况下设计的。可维护性在已部署系统的生存期中,适度的更改是可能的,实质的结构更改十分困难。因为在事件的自然过程中,这种实质上的更改会变得很有必要。例如,当已部署的应用程序越来越受用户欢迎时,增加的性能负荷可能需要进行结构更改。随着已部署的应用程序服务器上的性能负荷的增长,系统资源会变得不足,并且响应时间或吞吐量会受到影响。面对该问题,软件设计者可以选择将服务器的业务逻辑处理和用户界面处理划分到单独计算机上的单独层上。实际上,应用程序服务器层将替换为两层,缓解了系统资源缺乏。该问题并不是要设计三层应用程序。相反,它是要在应用程序部署以后增加层数。如果原始应用程序使用数据集以 ADO 实现,则该转换很容易进行。当用两层替换单个层时,将安排这两层交换信息。由于这些层可以通过 XML 格式的数据集传输数据,所以通信相对较容易。可编程性Visual Studio 中的 ADO 数据组件以不同方式封装数据访问功能,加快编程速度并减少犯错几率。例如,数据命令提取生成和执行 SQL 语句或存储过程的任务。同样,由这些工具生成的 ADO 数据类导致类型化数据集。使可以通过已声明类型的编程访问数据。性能对于不连接的应用程序,ADO 数据库提供的性能优于 ADO 不连接的记录集。当使用 COM 封送在层间传输不连接的记录集时,会因将记录集内的值转换为 COM 可识别的数据类型而导致显著的处理开销。在 ADO 中,这种数据类型转换则没有必要。可伸缩性因为 Web 可以极大增加对数据的需求,所以可缩放性变得很关键。Internet 应用程序具有无限的潜在用户供应。尽管应用程序可以很好地为十几个用户服务,但它可能不能向成百上千个(或几百万个)用户提供同样好的服务。使用数据库锁和数据库连接之类资源的应用程序不能很好地为大量用户服务,因为用户对这些有限资源的需求最终将超出其供应。ADO 通过鼓励程序员节省有限资源来实现可缩放性。由于所有 ADO 应用程序都使用对数据的不连接访问,因此它不会在较长持续时间内保留数据库锁或活动数据库连接。第三章 系统需求分析及总体设计3.1 系统功能分析系统开发的总体任务是实现酒店餐饮各种信息的系统化、规范化和自动化。流程图显示:分析调查有关酒店管理信息需求的基础上得本系统所处理的数据流程E-R图显示:数据库逻辑结构设计用户序号字段名类型长度索引备注1.用户名Varchar50主键Admin 管理员2.密码Varchar50表31 管理员表客房类型序号字段名类型长度索引备注1类型代码Int202类型名称Varchar50表3-2员工表房间信息序号字段名类型长度索引备注1房间代码Int20主键2房号Varchar203类型代码Int关联 客房类型4楼层Varchar505单价Int6房间电话Text7房间备注Varchar208房屋状态Varchar20住人 空闲客户序号字段名类型长度索引备注1客户代码Int2姓名Varchar503性别Varchar504随行人数Varchar505证件类型Varchar506证件号码Varchar507民族Varchar508籍贯Varchar509地址Varchar5010电话Varchar5011备注Varchar200房间预定序号字段名类型长度索引备注1预定代码Int2房间代码Int关联 房间信息3客户代码Int关联 客户4开始日期DateTime5截至日期DateTime6经办人Varchar50房间入住序号字段名类型长度索引备注1入住代码Int2房间代码Int关联 房间信息3客户代码Int关联 客户4入住日期DateTime5预定代码Int关联 房间预定 6预入住天数Int7退房日期DateTime8房款Int9经办人Varchar50第四章 系统详细设计与实现4.1 登陆界面该界面是本系统运行的第一个界面,其他所有操作均必需在本界面之后进行。也是安全性最高的一个模块。其实现的主要代码如下所示:if (TextBox2.Text.ToString().Trim() = "" | TextBox1.Text.ToString().Trim() = "") Response.Write("<script>javascript:alert('请输入完整');history.back();</script>"); Response.End(); string sql; if (RadioButton1.Checked) sql = "select * from allusers where username='" + TextBox2.Text.ToString().Trim() + "' and pwd='" + TextBox1.Text.ToString().Trim() + "'" else sql = "select * from yuangong where yonghuming='" + TextBox2.Text.ToString().Trim() + "' and mima='" + TextBox1.Text.ToString().Trim() + "'" DataSet result = new DataSet(); result = new Class1().hsggetdata(sql); / result = new TestOnline.Class1().hsggetdata(sql); if (result != null) if (result.Tables0.Rows.Count > 0) Session"username" = TextBox2.Text.ToString().Trim(); if (RadioButton1.Checked) Session"role" = result.Tables0.Rows0"cx".ToString().Trim(); else Session"role" = "员工" Response.Redirect("manage.htm"); else Response.Write("<script>javascript:alert('对不起,用户名或密码不正确!');</script>"); else Response.Write("<script>javascript:alert('对不起,系统错误,请不要越权操作!');</script>"); 4.2 主界面using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace 酒店管理 public partial class FrmFjEdit : Form public FrmFjEdit() InitializeComponent(); /窗体属性 private string mID = "" private string mPID = "" public string ID set mID = value.Trim(); get return mID; public string PID set mPID = value.Trim(); get return mPID; private void btn_Click(object sender, EventArgs e) /显示选择的住户信息 frmSelectInfo frm = new frmSelectInfo(); frm.Flag = "FrmFjEdit.txtLXDM" frm.TableName = "客房类型" frm.CurForm = this; frm.ShowDialog(); DataTable dt = new DataTable(); if (mPID = "") return; dt = db.Get("SELECT * frOM 客房类型 where 类型代码=" + mPID + ""); if (dt.Rows.Count > 0) txtLXDM.Text = dt.Rows0"类型名称".ToString(); txtLXDM.Tag = dt.Rows0"类型代码".ToString(); p