能不能说明白点啊:
我给个简单的数据层的例子吧:
导入命名空间
using
SystemData,Sqlclient;
string
ConnStr="server=;database=NewsData;uid=sa;pwd=123";
string
SQL_STRING="select
from
news";
database连接的是数据库名称;uid是用户名;pwd是登陆密码;
1,创建一个连接实例
SqlConnection
conn
=
new
SqlConnection(ConnStr);
2打开连接
connopen();
3。创建执行命令实例
SqlCommand
cmd=new
SqlCommand(SQL_STRING,conn);
4,创建只进读取数据对象
SqlDataReader
sdr
=
cmdExecuteReader();
5,读取数据
if
(sdrRead())
{
t_colnameText
=
sdr["new_Name"]ToString();
t_colwordsText
=
sdr["new_Des"]ToString();
}
6关闭连接
sdrClose();
connClose();
第一层:登录sql server 服务器,创建sql server登录用户
exec sp_addlogin '登录用户名','用户密码'
(注:这里当用户名和用户密码相同时可能会出现
“密码有效性验证失败。该密码不够复杂,不符合
Windows 策略要 求。”的错误提示,)
如果创建成功,则成功通过了第一层关卡
当然也可能把用户删除: drop login 用户名
第二层:访问数据库的权限,即成为该数据库用户
use 数据库名
go
exec sp_grantdbaccess '登录用户名','数据库用户名'
成功通过了第二关
同样可以删除:
use 数据库名
go
exec sp_revokedbaccess 数据库用户名
第三层:访问数据库中表的权限
use 数据库名
go
grant 权限 on 表名 to 数据库用户名
其中权限有:select、insert、update、delete
如果全部成功执行,恭喜你已经成功给某个用户分配权限
当然你还可以回收权限:
use 数据库名
go
grant 权限 on 表名 from 数据库用户名
您好,
一般讲到网站的三层架构,其实就是将整个业务应用划分为表示层、业务逻辑层、数据访问层等。 三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构:数据层、业务层、表现层,就是MVC模式,这是一种软件的设计模式,通过层次的划分,把各自不同的逻辑隔离开来。
详细了解的话,建议你在网上搜下MVC。
另外,网站不一定都要是MVC的,有些虽然说的很强大,其实根本不是那么回事。如果只是个很小的网站,确实没必要一定要去实现MVC,成本上不划算。就跟你如果去买菜,没必要一定要开法拉利一样。
至于VS2005,对于网站你可以这么开,它是把前台界面的显示和后台业务逻辑分开来的,你可以这么理解前台界面部分是V,后台业务逻辑类是C,数据库部分是M。
数据仓库数据库
是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于 *** 纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。
数据抽取工具
把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本、和SQL语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。
元数据
元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。
技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。
商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;
元数据为访问数据仓库提供了一个信息目录(informationdirectory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。
访问工具
为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;管理信息系统(EIS)工具;在线分析(OLAP)工具;数据挖掘工具。
数据集市(DataMarts)
为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subjectarea)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是再实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。
数据仓库管理:安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。
信息发布系统:把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。
数据库系统的三级模式结构和优点如下:
(1)模式:模式也称逻辑模式或概念模式。
优点:是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
(2)外模式:外模式也称用户模式。
优点:它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示外模式通常是模式的子集
(3)内模式:内模式也称存储模式。
优点:一个数据库只有一个内模式它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式、概念模式、内模式。
有效地组织、管理数据,提高了数据库的逻辑独立性和物理独立性。用户级对应外模式,概念级对应概念模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。
数据库系统的三级模式结构是指数据库系统是由模式、外模式和内模式三级构成的
数据库的二级映像功能与数据独立性 为了能够在内部实现数据库的三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像。
事务处理(TRANSACTION)是由一个或多个SQL语句序列结合在一起所形成的一个逻辑处理单元。事务处理中的每个语句都是完成整个任务的一部分工作,所有的语句组织在一起能够完成某一特定的任务。DBMS在对事务处理中的语句进行处理时,是按照下面的约定来进行的,这就是“事务处理中的所有语句被作为一个原子工作单位,所有的语句既可成功地被执行,也可以没有任何一个语句被执行”。DBMS负责完成这种约定,即使在事务处理中应用程序异常退出,或者是硬件出现故障等各种意外情况下,也是如此。在任何意外情况下,DBMS都负责确保在系统恢复正常后,数据库内容决不会出现“部分事务处理中的语句被执行完”的情况。
; 概论 本文将介绍如何创建一个三层应用程序 并且将介绍如何创建一个Web Service服务 ADO NET创建Windows三层结构应用程序的体系架构如下图所示 该结构分三个层次 表示层 业务层 数据层 数据层 代表物理数据库 业务层 负责数据层与表示层之间的数据传输 表示层 应用程序的客户端 它通过业务层来访问数据库 表示层所 *** 作的是驻留在内存中的本地数据 当需要更新数据库数据时 要通过业务层提供的更新方法实现 这样可以大大提高应用程序的性能 而且 什么时候更新数据完全由你决定 提高了编程的灵活性 实例: 这里我们具体做一个实例来看看如何用VB NET创建三层结构的应用程序 数据库 我们选择SQL SERVER 的NorthWind数据库 业务层 我们创建一个WebService作为中间层 (需要安装IIS服务) 表示层 我们写一个Windows Form 第一步 创建WebService 具体步骤如下 新建一个项目 选择ASP NET Web服务 命名为 WebService For 业务层 添加两个Sql DataAdapter 一个为Customer_da 它指向NorthWind数据库的Customers表 另一个为Order_da 指向Northwind数据库的Orders表 然后生成一个Typed DataSet(选择 数据 菜单的 生成数据集 ) 命名为 Super_ds 数据库连接已经完成 下一步我们将考虑它与表示层之间的通信 这里我们定义两个方法 一个为 Get_DataSet 它返回一个Super_ds类型的数据集 另一个为 Update_DataSet 它负责更新数据库数据 方法代码如下 <WebMethod()> Public Function Get_Dataset() As super_ds customer_da Fill(Super_ds Customers) order_da Fill(Super_ds Orders) Return Super_ds End Function <WebMethod()> Public Sub Update_Dataset() Super_ds AcceptChanges() End Sub 你可以运行测试一下你建立的这个WebService 它将提供两个方法 返回的DataSet是以XML表示的 业务层的完整代码如下 Imports System Web Services Public Class Service Inherits System Web Services WebService Web Services Designer Generated Code…… <WebMethod()> Public Function Get_Dataset() As super_ds customer_da Fill(Super_ds Customers) order_da Fill(Super_ds Orders) Return Super_ds End Function <WebMethod()> Public Sub Update_Dataset() Super_ds AcceptChanges() End Sub WEB SERVICE EXAMPLE The HelloWorld() example service returns the string Hello World To build unment the following lines then save and build the project To test this web service ensure that the a x file is the start page and press F <WebMethod()> Public Function HelloWorld() As String HelloWorld = Hello World End Function End Class 第二步 创建表示层 具体步骤如下 新建一个Windows应用程序 命名为 Windows Form For 表示层 在窗体上添加一个DataGrid 一个Button Button 的text为 Load 作用是 从业务层读取数据 在解决方案窗体中添加Web 引用 将我们自己建立的Web Service for 业务层引入到当前项目中 向Button 的Click事件添加如下代码 Dim Customer_Ds As New localhost super_ds() Dim ser As New localhost Service () Customer_Ds Merge(ser Get_Dataset) DataGrid DataSource = Customer_Ds 这里我们调用了Web Service的Get_DataSet函数 Update_DataSet方法的调用与此完全相同 表示层的完整代码如下 Imports Data_Access_表示层 Public Class Form Inherits System Windows Forms Form #Region Windows Form Designer generated code Public Sub New() MyBase New() This call is required by the Windows Form Designer InitializeComponent() Add any initialization after the InitializeComponent() call End Sub Form overrides dispose to clean up the ponent list Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (ponents Is Nothing) Then ponents Dispose() End If End If MyBase Dispose(disposing) End Sub Friend WithEvents Button As System Windows Forms Button Friend WithEvents Button As System Windows Forms Button Friend WithEvents Button As System Windows Forms Button Friend WithEvents Client_DataSet As Data_Access_表示层 localhost super_ds Friend WithEvents DataGrid As System Windows Forms DataGrid Required by the Windows Form Designer Private ponents As System ComponentModel Container NOTE: The following procedure is required by the Windows Form Designer It can be modified using the Windows Form Designer Do not modify it using the code editor <System Diagnostics DebuggerStepThrough()> Private Sub InitializeComponent() Me Button = New System Windows Forms Button() Me Button = New System Windows Forms Button() Me Button = New System Windows Forms Button() Me Client_DataSet = New Data_Access_表示层 localhost super_ds() Me DataGrid = New System Windows Forms DataGrid() CType(Me Client_DataSet System ComponentModel ISupportInitialize) BeginInit() CType(Me DataGrid System ComponentModel ISupportInitialize) BeginInit() Me SuspendLayout() Button Me Button Location = New System Drawing Point( ) Me Button Name = Button Me Button TabIndex = Me Button Text = load Button Me Button Location = New System Drawing Point( ) Me Button Name = Button Me Button TabIndex = Me Button Text = update Button Me Button Location = New System Drawing Point( ) Me Button Name = Button Me Button TabIndex = Me Button Text = clear Client_DataSet Me Client_DataSet DataSetName = Client_DataSet Me Client_DataSet Locale = New System Globalization CultureInfo( zh CN ) Me Client_DataSet Namespace = DataGrid Me DataGrid DataMember = Me DataGrid Location = New System Drawing Point( ) Me DataGrid Name = DataGrid Me DataGrid Size = New System Drawing Size( ) Me DataGrid TabIndex = Form Me AutoScaleBaseSize = New System Drawing Size( ) Me ClientSize = New System Drawing Size( ) Me Controls AddRange(New System Windows Forms Control() {Me DataGrid Me Button Me Button Me Button }) Me Name = Form Me Text = Form CType(Me Client_DataSet System ComponentModel ISupportInitialize) EndInit() CType(Me DataGrid System ComponentModel ISupportInitialize) EndInit() Me ResumeLayout(False) End Sub #End Region Private Sub Button _Click(ByVal sender As System Object ByVal e As System EventArgs) Handles Button Click Dim Customer_Ds As New localhost super_ds() Dim ser As New localhost Service () Customer_Ds Merge(ser Get_Dataset) DataGrid DataSource = Customer_Ds End Sub End Class 总结 可见 表示层窗体上完全没有数据库连接控件 它与数据库的连接任务是通过业务层来完成的 这样 程序的结构更加清晰 当然业务层的实现也可以用其他方法 比如 写一个自己的类来完成与数据库的数据传输 lishixinzhi/Article/program/net/201311/12618
以上就是关于C#三层的数据库访问层的连接数据库类要怎么写才好!全部的内容,包括:C#三层的数据库访问层的连接数据库类要怎么写才好!、SQL的三层安全模式、什么是网站的三层结构:数据层、业务层、表现层等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)