你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 专家论坛
应用ASP.NET2005+C#设计B/S结构的企业订餐管理系统(一)
 

摘 要  ASP.NET2.0编程技术正是得益于万维网Web通信的快速、简洁等独特优势,逐渐被大多数程序员和管理者接受和青睐。本文试以一个简单的企业应用实例,阐述ASP2.0技术的优点和编程技巧,通过应用的Web控件详细说明如何传递数据、操作数据库,包括:连接、查询、插入、删除、更新等,并实现了自动化无闪刷新。系统由笔者独立开发,已通过测试并投入实际应用,获得了较好的评价。

 

关键词B/S结构;AJAX技术;OLEDB数据库引擎;网页局部无闪刷新;记录集自动刷新;JavaScript语言;动态数据绑定控件;GridView控件。

 

    “B/S”是英文Browser/Server的缩写,即:浏览器/服务器模式结构。随着InternetIntranetWeb模式诞生,B/S这种基于网络存储结构的读取访问模式也应运而生。它的客户端是Windows操作系统的浏览器,大多数功能放在服务器端运行,简化了系统的开发、维护和使用。其最显著优点是,只要计算机联网,用户不必安装任何客户端程序就能进入系统,客户端实现了零维护,系统功能扩展更加方便。通过B/S结构,用户界面完全通过万维网WWW浏览器操作,少量任务在客户端实现,主要事务逻辑由服务器处理,系统效率极高。

随着B/S框架的普及应用,很大程度上推动了AJAX技术的发展。AJAX解释为异步JavaScriptXML,是一种创建交互式网页应用的网页开发技术。最大优点在于能在不更新整个页面的前提下操作数据,使Web应用程序更为迅捷地回应客户指令,避免了网络上发送没有任何变化的信息。它的程序在客户端电脑进行处理,增加了交互性,关键是可以局部实时刷新,进行无刷新请求数据处理,从而实现局部交换客户端和服务器的数据。尤其针对数据库记录的检索,可以避免整个网页的刷新闪动,虽然是和服务器的数据库进行数据交换,但用户永远感觉是在客户端执行操作,迅速直接。进而引用AJAXTimer定时控件,可达到客户端记录集自动无闪刷新。

OLEDB就是对象链接和嵌入数据库,它位于ODBC层与应用程序之间。先进的ADO连接数据库基本分为三类:SYSTEM DSN ConnectionDSN-LESS Connection OLEDB ConnectionSYSTEM DSN DSN-LESS Connection 都是通过 ODBC 与数据库进行连接,效率不是特别高,因为ODBC要通过自己的ODBC Provider ODBC自身以及Driver三层才能连接;然而OLE DB直接通过自己的Provider连接到数据库。所以,OLE DB方式更直接,连接数据库比ODBC快,检索数据更快,服务器端的游标性能得到提升。

 

一、用户登录

通过客户端的JavaScript语言,判断客户页面输入字符的有效性;使用OlEDB数据库引擎打开Access数据库,检查用户和密码是否合法。

 

1.利用Java语言在客户端检查输入的字符是否合法。

HTML语言:

<script language="javascript">

<!--

function IsEmpty()  //客户端检查是否输入字符

{

   //获得输入的用户名

   var name=document.getElementById("txtUserID");

   if(name.value=="")

   {

   alert("用户不能为空!");

   name.focus();

   return false;

   }

   //获得输入的密码

   var pwd=document.getElementById("txtPwd");

   if(pwd.value=="")

   {

   alert("密码不能为空!");

   pwd.focus();

   return false;

   }

   return true;

}

 

C#语句:

protected void Page_Load(object sender, EventArgs e)

{

//设置控件焦点函数

        setFOCUS();

   

        //若首次打开网页,执行以下语句

        if (!Page.IsPostBack)

        {

//“登录”按钮“点击”事件调用IsEmpty()函数

this.btLogin.Attributes.Add("onclick", "javascript:return IsEmpty();");

//“退出”按钮加入关闭确认提示         this.btExit.Attributes.Add("onclick", "window.close()");

        }

}

 

//刷新网页,焦点指向文本框

    protected void setFOCUS() 

    {  string script = "<script language='JavaScript'> document.getElementById('txtUserID').focus();</script>";

       Page.RegisterStartupScript("", script);

}

 

2.通过OlEDB方式动态连接数据库,判断用户名和密码是否合法。

 

Web.config<configuration>内定义数据库连接字符串

<appSettings>

    <add key="connStr" value="provider=Microsoft.Jet.oledb.4.0;data source=|DataDirectory|\dinner.mdb;"/>

</appSettings>

C#语句:

using System.Data.OleDb;  //引入数据命名空间

protected static string connStr = ConfigurationSettings.AppSettings["connStr"];  //引用数据库连接字符串

 

protected void subLogin()  //登录验证过程

    {

        string userID = Request.Form["txtuserID"];

        string userPWD = Request.Form["txtPWD"];

       

        OleDbConnection connDB = new OleDbConnection(connStr);  //OleDb数据链接的初始化

        connDB.Open();  //打开数据库连接

        string strSql="select user_id,user_pwd,user_nam,UI.dept_id as dept_id,dept_nam,level_id from user_info UI,dept_info DI where UI.user_id='" + userID + "' and UI.dept_id=DI.dept_id";

        OleDbCommand cmd=new OleDbCommand(strSql,connDB);  //执行查询语句

        OleDbDataReader drd=cmd.ExecuteReader();

        if (drd.Read())  //查出此用户

        {

            if (userPWD == Convert.ToString(drd["user_pwd"]))  //密码正确

            {  

                //赋值给SESSION变量,全局使用

                Session["userID"] = Convert.ToString(drd["user_id"]);

                Session["userNam"] = Convert.ToString(drd["user_nam"]);

                Session["deptID"] = Convert.ToString(drd["dept_id"]);

                Session["deptNam"] = Convert.ToString(drd["dept_nam"]);

               

                string levelID = Convert.ToString(drd["level_id"]);

                if (levelID == "IN")

                    Response.Redirect("choice.aspx");  //订餐网页

                else if (levelID == "AD")

                    Response.Redirect("submit.aspx");  //审核网页

            }

            else

                Response.Write("<script language=javascript>window.alert('密码错误!');</script>");

        }

        else

            Response.Write("<script language=javascript>window.alert('无此用户!');</script>");

 

        connDB.Close();  //关闭数据库连接

}

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089