- 浏览: 200442 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
Jasper520:
我的alert(td);是null
Struts2批量上传文件 -
chanly:
直直走 写道大家不要点那个链接,那里边有木马。 可恶 这 ...
关于数据库权限设计的探讨 -
化蝶自在飞:
兄弟以后发代码用 code 吧.那样会更好.呵呵.支持一下.
FCKeditor 利用javascript插入图片以及统计当前输入字数方法 -
paddycq:
导出的文件命名用中文出错,要对中文进行编码,只支持ISO-88 ...
jsp导出word、excel -
直直走:
大家不要点那个链接,那里边有木马。 可恶 这可是技术论坛 ...
关于数据库权限设计的探讨
调试环境:WinXP-sp2+Access2000+Visual Studio.net 2005
【摘 要】本文阐述了存储过程在开发三层或N层数据库应用程序的优势,并通过示例给出了在Access中建立“存储过程”和用Asp.net调用的方法及需注意的问题。
在开发三层或N层结构的数据库应用程序时,数据访问层对数据库的访问大都采用调用“存储过程”的方式进行。相对于使用的是SQL命令文本来实现数据库的访问而言,利用存储过程使数据库和数据访问层彼此独立,增强了系统设计的灵活性,当数据库发生变化时只需改变存储过程的语句而无需改变程序代码。另外,在存储过程中可以使用参数传递,避免了在使用带参数的 SQL 语句时参数值在字符串中拼接问题。
然而,存储过程只有象SQL Server等这样较大型的数据库才支持,而对于开发基于Access这样的轻量级数据库应用程序时更多使用的是SQL命令文本来实现数据库的访问。事实上,Access的“查询”也具有类似于SQL Server“存储过程”的功能,虽功能上远不及SQL Server下的“存储过程”,但调用方法和调用SQL Server“存储过程”的方法几乎相同,因此掌握调用Access的“存储过程”,对设计出结构优良、移植性强的数据库应用程序是大有裨益的。
下面以Asp.net 2.0和Access2000为例,说明其调用方法。
一、建立示例数据库及查询
1、 建立示例数据库tstSp.mdb:
2、建立表StuGrade,结构如图所示:
2、 建立查询:
在Access2000中,选择“查询”--à“设计视图”--à“SQL视图”,建立如下查询
1) 查询QuerySp:
SELECT * FROM StuGrade;
2) 查询InsertSp:
INSERT INTO StuGrade ( Name, Chinese ) VALUES ([Name], [Chinese]);
注:参数值需用“ [ ] ”括起来,下同。
3) 查询UpdateSp:
UPDATE StuGrade SET Chinese = [chVal] WHERE Name=[stuName];
4) 查询DeleteSp:
DELETE * FROM StuGrade WHERE Name=[stuName];
需要说明的是,Access的查询不能象SQL Server那样支持多条 SQL 语句和逻辑语句。
二、建立数据访问层
数据访问层类文件TstDal.cs
…
using System.Data.OleDb;
namespace TstDal
{public class Dal
{ …
public string GetConnStr // 数据库连接字符串属性
{ get
{ return "provider=Microsoft.Jet.OLEDB.4.0;Data Source="+
ystem.Web.HttpContext.Current.Server.MapPath("App_Data/tstSp.mdb") + ";";
}
}
public OleDbDataReader ExecQuerySp()
{ // 调用“查询QuerySp”
OleDbConnection myConnStr = new OleDbConnection(this.GetConnStr);
OleDbCommand myCmd = new OleDbCommand("QuerySp", myConnStr);
myCmd.CommandType = CommandType.StoredProcedure;
myConnStr.Open();
OleDbDataReader ret = myCmd.ExecuteReader(CommandBehavior.CloseConnection);
return ret;
}
public void ExecInsertSp(string Para1,string Para2)
{ // 调用“查询InsertSp”
OleDbConnection myConnStr = new OleDbConnection(this.GetConnStr);
OleDbCommand myCmd = new OleDbCommand("InsertSp", myConnStr);
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Parameters.Add("Name", OleDbType.Char);
myCmd.Parameters["Name"].Value = Para1;
myCmd.Parameters.Add("Chinese", OleDbType.Single);
myCmd.Parameters["Chinese"].Value = float.Parse(Para2);
myConnStr.Open();
myCmd.ExecuteNonQuery();
myConnStr.Close();
}
public void ExecUpdateSp(string Para1, string Para2)
{ // 调用“查询UpdateSp”
OleDbConnection myConnStr = new OleDbConnection(this.GetConnStr);
OleDbCommand myCmd = new OleDbCommand("UpdateSp", myConnStr);
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Parameters.Add("chVal", OleDbType.Single);
myCmd.Parameters["chVal"].Value = float.Parse(Para2);
myCmd.Parameters.Add("stuName", OleDbType.Char);
myCmd.Parameters["stuName"].Value = Para1;
myConnStr.Open();
myCmd.ExecuteNonQuery();
myConnStr.Close();
}
public void ExecDeleteSp(string Para1)
{ // 调用“查询DeleteSp”
OleDbConnection myConnStr = new OleDbConnection(this.GetConnStr);
OleDbCommand myCmd = new OleDbCommand("DeleteSp", myConnStr);
myCmd.CommandType = CommandType.StoredProcedure;
myCmd.Parameters.Add("stuName", OleDbType.Char);
myCmd.Parameters["stuName"].Value = Para1;
myConnStr.Open();
myCmd.ExecuteNonQuery();
myConnStr.Close();
}
}
}
需要说明的是,Access“存储过程”不支持命名参数,即参数是以“顺序”而非“名字”来识别的,并且参数前不能有@符号,这一点在调用时需特别注意。
三、建立用户界面层
1、界面设计Default.aspx(如图所示):
控件 ID
GridView TstGv
TextBox TxtName
TxtChn
Button BtnInsert
BtnUpdate
BtnDelete
控件属性设置
2、界面后台代码:
Default.aspx.cs
…
using TstDal;
public partial class _Default : System.Web.UI.Page
{ protected void TstDataList() // 调用数据库访问类并绑定到控件函数
{ Dal QuerySp = new Dal();
TstGv.DataSource = QuerySp.ExecQuerySp();
TstGv.DataBind();
}
protected void Page_Load(object sender, EventArgs e)
{ this.TstDataList(); }
protected void BtnInsert_Click(object sender, EventArgs e)
{ Dal InsertSp = new Dal();
InsertSp.ExecInsertSp(TxtName.Text.Trim(), TxtChn.Text.Trim()); // 调用数据库访问类
this.TstDataList();
}
protected void BtnUpdate_Click(object sender, EventArgs e)
{ Dal UpdateSp = new Dal();
UpdateSp.ExecUpdateSp(TxtName.Text.Trim(), TxtChn.Text.Trim());
this.TstDataList();
}
protected void BtnDelete_Click(object sender, EventArgs e)
{ Dal DeleteSp = new Dal();
DeleteSp.ExecDeleteSp(TxtName.Text.Trim());
this.TstDataList();
}
}
发表评论
-
ASP.NET访问IIS元数据库失败--解决方案
2011-05-31 12:41 2028访问IIS元数据库失败时间:在本地访问.aspx页面时总出现如 ... -
Web.config配置文件详解
2010-12-03 09:38 1847花了点时间整理了一下ASP.NET Web.config配置文 ... -
dsdsds
2009-09-16 22:37 1155http://topic.csdn.net/t/2005102 ... -
asp.net中判断链接来源
2009-09-16 22:07 2214在网页制作中,在制作管理后台的时候,为了保证安全性,我们经常需 ... -
访问IIS元数据库失败
2009-09-16 21:55 3051装了VS2005再装IIS,结果出了些小问题 访问IIS元数据 ... -
关于sqlhelper调用存储过程和获取参数返回值
2009-09-09 16:00 3575SQLHelper类给我们操作数据库提供了便利,有些人说, ... -
图解建立三层架构项目
2009-09-01 10:00 2175建立一个名为 mysite的项目,采用三层构架:1.新建立一个 ... -
UrlRewrite实现二级域名或多级域名
2009-08-01 17:39 1490本文来自CSDN博客,转载请标明出处:http://blog. ... -
使用csc命令将.cs文件编译成.dll的过程
2009-08-01 17:20 2285很多时候,我们需要将.cs ... -
反编译工具Reflector下载(集成两个常用.net插件,FileGenerator和FileDisassembler)
2009-08-01 17:19 5490Reflector是一款比较强大的反编译工具,相信很多朋友都用 ... -
一个过滤特殊字符的函数ASP.NET (C#)
2009-07-22 13:53 4309最近发现,网络实在是一个很不安全的东西。你开发的东西如果不做任 ... -
在Access2000使用存储过程进行参数查询(ASP.NET)
2009-07-17 10:46 1631不像SQLSERVER存储过程,Access2000参数查询不 ... -
Asp.net生成htm静态文件的两种途径
2009-03-19 23:11 1230现在很多网站特别是资讯类的都把内容生成静态页(htm\html ... -
Asp.net 2.0三层架构的构建与理解
2009-02-12 22:01 3033三层架构分别是数据访问层 database access la ... -
sqlhelper使用指南 之 使用 SqlHelper 类执行命令
2009-01-11 12:49 3642摘要:Data Access Application Bloc ... -
sqlhelper使用指南 之 使用 SqlHelperParameterCache 类管理参数
2009-01-11 12:45 3250使用 SqlHelperParameterCache 类管理参 ... -
验证视图状态 MAC 失败
2008-12-27 16:11 2021出错提示: 验证视图状态 MAC 失败。如果此应用程序由网络场 ... -
asp.net调用SQL存储过程之回传多值
2008-12-27 12:33 1600asp.net代码: private void Loa ... -
ASP.NET之调用SQL存储过程
2008-12-27 12:31 2485存储过程使用篇1. 在SQL中执行执行已创建的存储过程使 ... -
ASP.NET实现伪静态
2008-10-11 16:10 1223大家一定经常在网络上看到很多网站的地址后缀都是用XX.HTML ...
相关推荐
【标题】:“信息查询 ASP.NET + ACCESS”是一个基于ASP.NET技术与ACCESS数据库构建的学生信息管理系统。这个系统的主要目的是实现对学生信息的有效管理和查询,为教育机构提供便利的数据处理平台。 【描述】:该...
【描述】:这个项目是一个基于C#编程语言和ASP.NET框架构建的简单在线论坛,采用了Access数据库作为后台数据存储。它对于初学者来说非常友好,提供了一个易于理解和实践的平台,能够帮助初学者快速掌握Web应用开发的...
【ASP.NET与Access数据库小型网站开发详解】 ASP.NET是微软公司推出的一种用于构建Web应用程序的框架,它基于.NET Framework,提供了强大的服务器端编程模型。在本文中,我们将深入探讨如何利用ASP.NET结合Access...
【标题】:“asp.net+access 通讯录”指的是一个基于ASP.NET技术和Access数据库构建的联系人管理系统。在本文中,我们将深入探讨如何利用这两种技术来创建一个简单的通讯录应用。 【描述】:“asp.net+access ...
在本例中,我们讨论的是如何使用 ASP.NET 连接到 Access 数据库进行数据操作,如读取、插入、更新和删除数据。Access 数据库是一种轻量级的关系型数据库管理系统,适用于小型应用或开发阶段的数据存储。 首先,要在...
在电子商务网站的开发过程中,ASP.NET和ACCESS的结合工作流程如下: 1. **用户界面**:ASP.NET负责创建用户友好的界面,用户可以通过这些界面浏览商品、下订单、查看购物车等。 2. **数据交互**:当用户进行操作时...
【标题】"用asp.net+access做的简单聊天室"展示了如何使用ASP.NET这一Web应用程序开发框架,结合Access数据库,创建一个基本的在线聊天系统。这个项目对于初学者来说,是理解Web交互和数据库操作的好例子。 ASP.NET...
【标题】"asp.net+access简单的后台新闻发布"指的是使用ASP.NET技术与Access数据库构建一个简易的后台新闻发布系统。ASP.NET是Microsoft开发的Web应用程序框架,它允许开发人员使用C#或VB.NET等语言创建动态网站、...
根据给定的信息,本文将详细解释“ASP.NET 2.0 C# Access数据库访问类”的核心概念、功能以及实现方式。 ### ASP.NET 2.0 和 C# 首先,我们需要了解两个重要的技术背景:ASP.NET 2.0 和 C#。 #### ASP.NET 2.0 ...
"asp.net 操作 access 强大的通用类"指的是一个专门设计的C#类库,该类库简化了ASP.NET应用程序与Access数据库之间的交互。这个类可能包含了连接数据库、执行SQL语句、处理结果集、事务管理等一系列功能,从而提高...
在ASP.NET中调用这个存储过程,可以使用Oracle .NET 数据提供程序(Oracle.DataAccess.Client)。以下是一个C#方法,展示了如何执行存储过程并处理返回的多个结果集: ```csharp public object[] ExcuteProc_N_...
这个“ASP.NET网站首页新闻自动发布系统全源码提供+access数据库”项目,是一个利用ASP.NET进行开发的新闻管理系统,适用于企业或个人网站,能够实现新闻的自动化发布和管理。 该系统的功能主要包括: 1. 新闻管理...
这个文件名表明项目的核心功能是实现学生选课,通过ASP.NET和C#的结合,提供用户界面和业务逻辑,而Access数据库则负责存储和管理学生的选课数据,如课程信息、学生信息、选课记录等。 在这样的系统中,可能会涉及...
在ASP.NET开发中,数据访问是一个至关重要的部分,它涉及到如何从数据库获取、存储和管理信息。本教程将深入探讨一种常见的数据访问架构——三层架构,以及如何处理数据并发问题和扩展数据访问控件。 三层架构是一...
在Asp.Net中开发审批流程,可以帮助企业或组织实现高效、规范的业务审批过程,提升工作效率。在这个审批流程中,我们可以利用Asp.Net的核心特性和组件来创建一个用户友好的界面,以及强大的后台逻辑来处理审批逻辑。...
在这个毕业设计项目中,学生利用ASP.NET和ACCESS数据库来构建了一个完整的网上购物系统,涵盖了从商品浏览、购物车管理到订单处理等一系列电子商务流程。 该项目的核心知识点包括: 1. **ASP.NET基础**:ASP.NET是...
ASP.NET提供了多种方式来实现这种集成,例如通过Web服务或API调用,确保支付过程的安全性和可靠性。 6. **安全性与身份验证** ASP.NET提供了多种安全机制,如身份验证、授权和角色管理。在本项目中,可能使用Forms...
在这个特定的案例中,我们看到的是一个使用ASP.NET和Access数据库构建的电话本程序。 Access数据库是Microsoft Office套件的一部分,是一个关系型数据库管理系统(RDBMS),适用于小型到中型企业级的数据存储需求。...
在这个“ASP.NET 登录窗口例子”中,我们将探讨如何在ASP.NET环境中实现用户登录功能,以及如何与Access数据库进行交互来存储和验证用户信息。 首先,ASP.NET登录窗口是应用程序中的关键组件,它允许用户输入他们的...
这是一个基于ASP.NET技术构建的新闻管理系统,采用C#编程语言,并使用Access数据库作为后端数据存储。这个系统的核心目标是方便地管理和发布新闻内容,同时提供了用户注册、登录以及分类查看新闻的功能。以下是对该...