为什么要设置数据源 怎样设置Access数据源

为什么要设置数据源 怎样设置Access数据源,第1张

设置数据源,就相当于打电话拨号一样,只有拨通了才能通话,这也一样,建立数据源实现了网站中IIS对数据库的访问乱携连接。具体方法如下:

1、在控制面板中,双击管理工具,然后打开ODBC数据源管理器。

2、在“系统DSN”选项卡中,单击“添加”按钮,打开“创建新数据源孙肆”对话框,在“名称”列表框中选择“Driver

do

Microsoft

Access(*.mdb)”点击‘完成’。

3、在出现的

odbc

microsoft

access

安装中,填写‘数据源名’(随便起个名),单击‘选择’按钮选择你的数据库文件(进行连哗凯伏接),没有的话点击旁边的‘创建’。 *** 作完成后单击‘确定’。

4、odbc *** 作基本完成了,剩下的 *** 作就是设置你要进行 *** 作的软件了。

在 Access 项目中链接到外部数据源 适用于Microsoft Office Access 2003Microsoft Access 2002 链接表向导是 Access 2002 中的新增功能。如果您的 Access 项目连接到 Microsoft SQL Server�6�4 7.0 或更高版本的数据库,或连接到本地计算机上运行的 SQL Server 2000 桌面引擎,就可以轻松地与各种 OLE DB 数据源相链接,包括:SQL Server 表(兆衡不需要安装本地 SQL Server) Microsoft Access 数据库(.mdb— 所有版本) Microsoft Access 项目(.adp— 所有版本) Microsoft Excel(3.0 版和更高版本) 文本文件 HTML 文件 dBASE 数据库(版本 3、4 和 5) Paradox 数据库(版本 3.x、4.x、5.x 和 7.x) 若要启动链接表向导,请指向“文件”菜单上的“获取外部数据”,然后单击 “链接表”。该向导可指导您完成创建链接表所需的步骤。完成时,Access 会创建一个数据库视图,其名称默认分为四部分:<服务器>_<数据库>_<所有者>_<表>;例如 ACCSQL2000_pubs_dbo_authors (SQL Server) 或 Northwind___Suppliers(Access 数据库)。链接表的两种类型通过使用链接表向导,您可以指定链接服务器或 Transact SQL 函数,两者都管理到外部数据源的链接并创建 OLE DB 连接族仔做字符串。链接服务器 Access 可在本地 SQL Server 数据库或数据库引擎中创建链接服务器。链接服务器是对一种 OLE DB 数据源的定义,这种数据源永久性地在本地 SQL Server 数据库或数据库引擎中存储连接字符串。通常,如果 OLE DB 数据源允许,链接服务器可提供大部戚晌分功能,包括更新数据的功能(使用 ADO、存储过程或用户定义的函数)。另外,如果链接到另一个 SQL Server 数据库,SQL Server 通常会优化联接 *** 作。不过,您必须是 sysadmin 或 setupadmin 角色的成员,才能创建链接服务器。示例:连接到外部 SQL Server 数据库的链接表被定义为链接服务器SELECT *

FROM [PUBSERVER].pubs.dbo.jobs jobs_1示例:连接到外部 Access 数据库的链接表被定义为链接服务器SELECT *

FROM Northwind...Suppliers Suppliers_1Transact SQL 函数 Access 可创建使用 Transact SQL rowset 函数的 OLE DB 数据源,以创建到外部数据源的专用只读连接。Access 使用 OPENDATASOURCE (SQL Server 2000) 或 OPENROWSET (SQL Server 7.0) rowset 函数。示例:连接到外部 SQL Server 数据库的链接表使用 OPENDATASOURCE 函数进行定义SELECT *

FROM OPENDATASOURCE ('SQLOLEDB',

'PWD=MyPasswordPersist Security Info=TrueUID=saInitial Catalog=pubsSERVER=PUBSERVERUse Procedure for Prepare=1Auto Translate=TruePacket Size=4096Workstation ID=MYCOMPUTERUse Encryption for Data=FalseTag with column collation when possible=False').pubs.dbo.[jobs] Rowset_1示例:连接到外部 Access 数据库的链接表使用 OPENDATASOURCE 函数进行定义SELECT *

FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',

'Password=""User ID=AdminData Source=\\NWIND\Databases\Northwind.mdbMode=Share Deny WriteExtended Properties=""Jet OLEDB:System database=""Jet OLEDB:Registry Path=""Jet OLEDB:Database Password=""Jet OLEDB:Engine Type=5Jet OLEDB:Database Locking Mode=0Jet OLEDB:Global Partial Bulk Ops=2Jet OLEDB:Global Bulk Transactions=1Jet OLEDB:New Database Password=""Jet OLEDB:Create System Database=FalseJet OLEDB:Encrypt Database=FalseJet OLEDB:Don''t Copy Locale on Compact=FalseJet OLEDB:Compact Without Replica Repair=FalseJet OLEDB:SFP=False')...[Suppliers] Rowset_1有关链接服务器、OPENDATASOURCE 和 OPENROWSET 的详细信息,请参阅《Microsoft SQL Server 联机手册》。处理链接表虽然您可以在“数据库”窗口中重命名链接表视图,但利用命名机制提醒自己该视图为链接表是个不坏的主意。例如,可以将“ACCSQL2000_pubs_dbo_authors”重命名为“lnk_authors”。不过,Microsoft 建议,不要在查询设计器中更改链接表。如果希望通过选择列、添加筛选器、创建计算字段或联接数据来处理数据,请执行下列 *** 作之一,创建使用链接表视图的新查询:在 SQL SELECT 语句的 FROM 子句中,将链接表作为表源添加。 在查询设计器中创建新查询(在“查询”菜单上,依次单击“添加表”、“视图”,然后双击链接表视图)。 使用查询设计器或 SQL 文本编辑器在新查询中进行更改。修改链接表连接字符串有时,您可能需要修改链接表的连接字符串。例如,可能需要更改下列各项之一:数据源的位置,原因是该位置已经移动。 连接超时,原因是有时您的查询花费的时间太长,无法在拥挤的网络上执行。 扩展属性,原因是您想在 HTML 文件或电子表格中启用或禁用列标题。 有关使用连接字符串的详细信息,请参阅以下内容:Microsoft 开发人员网络 (MSDN) 上的“Microsoft 数据访问组件 (MDAC) SDK 概述” MSDN 上的“ADO 提供程序属性和设置” Microsoft Office 2000/Visual Basic 程序员指南,第 14 章“使用 ADO 连接字符串” MSDN 上的“在 DAO 中设置连接字符串参数” 修改基于链接服务器的链接表的连接字符串由于本地计算机上的 SQL Server 可以有不同的安装类型,因此修改基于链接服务器的链接表的连接字符串所需的步骤也有所不同。针对 SQL Server 2000 本地安装的过程如果您拥有 SQL Server 2000 的本地安装,则可以使用 Microsoft SQL Server 企业管理器来更改链接服务器的连接字符串。从 Microsoft Windows�0�3 的“开始”菜单启动企业管理器。 展开控制台树,直到找到位于 SQL Server 的 Security 文件夹中的链接服务器。 右键单击链接服务器并单击“属性”。 单击“常规”选项卡,然后在“提供程序字符串”框中更改连接字符串。

许多学者总会面对于数据库的知识,以下的例子讲述到Access数据库说明,用C#的DataSet类访问数据库的一些 *** 作方法。

*** 作涉及的主要C#类有:

DataSet:对应数据库表的一个集合,竖历实际上是数据库表在内存中的一个缓存

DataTable:对应数据库表,是数据库表行的集合

DataRow:对应数据库表行

OleDbConnection:建立数据库连接

OleDbDataAdapter:由数据库生成DataSet,并负责DataSet与数据库的同步

OleDbCommandBuilder:生成更新数据库所需的指令www.kmxxfk.com

DataSet、DataTable、DataRow用于数据在缓存中的 *** 作,这上面的 *** 作只有更新到数据库中,修改结果才会被永久保存。OleDbConnection 是用OLEDB方法连接数据库所必需的。OleDbDataAdapter和OleDbCommandBuilder用来生成DataSet,完成数据库更新。与余模搜OleDbDataAdapter和OleDbCommandBuilder相对应,SqlDataAdapter和SqlCommandBuilder也可以完成用SQL语言为指令的数据库更新。

假设在D:盘创建了Access数据库,其路径为d:\\0DBAcs\\account.mdb,数据库中有一张名为kaizhi的数据库表。表结构如下:

表名;Kaizhi

字段Field Name类型说明

1开支IDkzID长整型自动编号

2开支人Kzren文本50字符

3开支项目名kzname文本50字符

4日期riqi日期/时间99-99-99;0掩码

5开支说明shuoming文本225字符

6总金额zonge单精度小数点任意;这项开支的总花费

7数量shuliang长整型 www.kmxxfc.com

8单价Danjia单精度小数点任意

表建好之后:(1)对表中添加新数据(2)查询表中的某个字段。为了实现这两项功能,以下几个问题要考虑:

1准备工作

声明必须的公共变量

建立与数据库的连接,创建DataSet对象

2添加记录

在DataSet对象上添加记录

同步DataSet对象对象与数据库中的数据,这一点很重要,很多人忘记了数据进行同步,结果往往是添加、修改的数据不能保存到数据库中。

3查询数据库表中某记录的某字段;

我们可以将上述功能用一个码枣类DataOper实现,下面是程序设计的主要活动。

声明要用的C#系统类

using System

using System.Collections.Generic

using System.Text

using System.IO

using System.Data

using System.Data.OleDb

using System.Data.SqlClient

声明DataOper类中的公共变量

private string DBlocation

private OleDbConnection dbconn//数据库连接

private OleDbDataAdapter da

建立与数据库的连接,这里采用了OLEDB方法:

dbconn = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0Data Source=d:\\0DBAcs\\account.mdb")

dbconn.Open()

创建DataSet对象

da = new OleDbDataAdapter(@"select * from kaizhi", dbconn)//引用数据库连接dbconn并依据SQL语句"select * from kaizhi"创建OleDbDataAdapter对象da

DataSet ds = new DataSet()//创建DataSet对象

da.Fill(ds)//用OleDbDataAdapter对象da填充、更新刚创建的DataSet对象

添加记录并更新数据库

OleDbCommandBuilder cb = new OleDbCommandBuilder(da)// 创建OleDbCommandBuilder对象cb用于更新OleDbDataAdapter对象da的Insert、Delete、Update指令

da.UpdateCommand = cb.GetUpdateCommand()//更新OleDbDataAdapter对象da的指令

设计人员可以编写自己的更新指令,也可以象上面所写的那样用系统默认的指令。但不管怎样,上面的语句不能缺少,否则程序在运行中会抛出异常System.InvalidOperationException,并提示:Update requires a valid InsertCommand when passed DataRow collection with new rows.

DataRow drx = ds.Tables[0].NewRow()//创建一条新记录行

drx["kzren"] = "kzren"

drx["kzname"]="kzname"

drx["riqi"]=2008-10-11

drx["shuoming"]="shuoming"

drx["zonge"] = 12

drx["shuliang"] = 3

drx["danjia"] = 4

ds.Tables[0].Rows.Add(drx)//在表中追加记录

da.Update(ds)//更新数据库

要查询引用某记录的某字段,直接按如下的方法引用就可以了。

String kx=ds.Tables[0].Rows[0]["kzren"].ToString()

连接access

首先看一个例子代码片断:

程序代码:www.lzfsk.com/

--------------------------------------------------------------------------------

using system.data

using system.data.oledb

......

string strconnection="provider=microsoft.jet.oledb.4.0"

strconnection+=@"data source=c:\\begas.Net\\northwind.mdb"

oledbconnection objconnection=new oledbconnection(strconnection)

......

objconnection.open()

objconnection.close()

......

--------------------------------------------------------------------------------

解释:

连接access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!

strconnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源.

"provider=microsoft.jet.oledb.4.0"是指数据提供者,这里使用的是microsoft jet引擎,也就是access中的数据引擎,ASP.net就是靠这个和access的数据库连接的.

"data source=c:\\begaspnet\\northwind.mdb"是指明数据源的位置,他的标准形式是"data source=mydrive:mypath\\myfile.mdb".

ps:

1."+="后面的"@"符号是防止将后面字符串中的"\\"解析为转义字符.

2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:

strconnection+="data source="

strconnection+=mappath("northwind.mdb")

这样就可以省得你写一大堆东西了!

3.要注意连接字符串中的参数之间要用分号来分隔.

"oledbconnection objconnection=new oledbconnection(strconnection)"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的 *** 作我们都要和这个对象打交道.

"objconnection.open()"这用来打开连接.至此,与access数据库的连接完成.其余 *** 作(插入,删除...)请参阅相关书籍

连接SQL Server

例子代码片断:

程序代码:

--------------------------------------------------------------------------------

using system.data

using system.data.sqlclient

...

string strconnection="user id=sapassWord="

strconnection+="initial catalog=northwindserver=yoursqlserver"

strconnection+="connect timeout=30"

sqlconnection objconnection=new sqlconnection(strconnection)

...

objconnection.open()

objconnection.close()

...

--------------------------------------------------------------------------------

解释:

连接sql server数据库的机制与连接access的机制没有什么太大的区别,只是改变了connection对象和连接字符串中的不同参数.

首先,连接sql server使用的命名空间不是"system.data.oledb",而是"system.data.sqlclient".

其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔):

"user id=sa":连接数据库的验证用户名为sa.他还有一个别名"uid",所以这句我们还可以写成"uid=sa".

"password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".

这里注意,你的sql server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的sql server设置为Windows登录,那么在这里就不需要使用"user id"和"password"这样的方式来登录,而需要使用"trusted_connection=sspi"来进行登录.

"initial catalog=northwind":使用的数据源为"northwind"这个数据库.他的别名为"database",本句可以写成"database=northwind".

"server=yoursqlserver":使用名为"yoursqlserver"的服务器.他的别名为"data source","address","addr".如果使用的是本地数据库且定义了实例名,则可以写为"server=(local)\\实例名"如果是远程服务器,则将"(local)"替换为远程服务器的名称或ip地址.

"connect timeout=30":连接超时时间为30秒.

在这里,建立连接对象用的构造函数为:sqlconnection.

其余的就和access没有什么区别了!

********************************************************************************************************************

用c#访问access数据库

我编写这个程序的动机是当我希望用c sharp访问msaccess数据库的时候我没有办法获得任何信息和参考材料.网上所能获得的所有材料都是偏重于sql的,所以我们将分两步来编写这个应用程序,第一我们将展示如何连接到msaccess数据库然后看看它有多复杂.最后,我们就这样完成了这个程序. 

闲言少序,让我们开始正题.连接到数据库的过程与我们早先的ado连接过程相比已经发生了较大的变化.下面的图表恰当的(我希望如此)oledbconnection-->oledbcommand -->oledbdatareader.现在那些熟悉ado的人很明显能看出两者的相似之处但是为了使那些还没有很好的适应ado的人能够明白,下面是一些解释. 

oledbconnection -->代表对数据库的单一连接,根据底层数据库的功能它能给你 *** 纵数据库的能力.有一点必须记住,虽然oledbconnection对象出了作用范围,它也不会自动被关闭.所以,你将不得不显示的调用这个对象的close()方法. 

oledbcommand -->这是就象我们在ado中使用的一样的通常的command对象.你可以通过这个对象调用sql存储过程或是sql查询语句. 

oledbdatareader -->这个类拥有非常大的重要性因为它提供了实际上的对数据库底层数据集的访问.当你调用oledbcommand的executereader方法的时候它就会被创建,.net beta2 sdk说不要直接创建这个类的对象. 

现在你可以在.net beta 2的文档中看到更多的关于这些主要对象的说明,下面是指出如何在程序中访问数据库的源代码. 

using system 

using system.data.oledb 

class oledbtest{ 

public static void main() 

/创建数据库连接 

oledbconnection aconnection = new oledbconnection("provider=microsoft.jet.oledb.4.0data source=c:\\\\db1.mdb") 

/创建command对象并保存sql查询语句 

oledbcommand acommand = new oledbcommand("select * from emp_test", aconnection) 

try 

aconnection.open() 

/创建datareader 对象来连接到表单 

oledbdatareader areader = acommand.executereader() 

console.writeline("this is the returned data from emp_test table") 

/循环遍历数据库 

while(areader.read()) 

console.writeline(areader.getint32(0).tostring()) 

/关闭reader对象 

areader.close() 

/关闭连接,这很重要 

aconnection.close() 

/一些通常的异常处理 

catch(oledbexception e) 

console.writeline("error: {0}", e.errors[0].message) 

成功运行这个程序的步骤 

1.用msaccess创建一个名叫db1.mdb的数据库 

2.创建一个名叫emp_test的表单 

3.使它包含下列数据域 

emp_code int 

emp_name text 

emp_ext text 

4.将上面的代码保存到sample.cs文件中 

5.确保数据库位于c:\\并确保mdac2.6或是更新的版本已经被安装 

6.编译运行 

现在让我们来了解一些我们在oledbconnection对象的构造函数看到的东西的一些细节,在这里你看见诸如"provider="之类的东西.下面是一些和ado.net兼容的驱动程序类型. 

sqlolddb -->microsoft ole db provider for sql server, 

msdaora -->microsoft ole db provider for Oracle, 

microsoft.jet.oledb.4.0 -->ole db provider for microsoft jet 

你可以选择其中的任何一个但是他们会需要传递不同的参数,例如jet.oledb.需要传递mdb文件的名字而sqloledb需要传递用户名和密码. 

所有这些驱动程序都位于system.data.oledb命名空间里,所以你必须包括它,而且它们和oledb provider for odbc不兼容,也就是说你不能在VB6.0程序里使用这些驱动程序来访问数据库,所以不要去寻找解释为什么要把这些数据库放在c:\\上的资料了 

当你使用microsoft sql server 7.0 或者更新版本的时候,下面是微软给出的一些指导: 

推荐使用.net data provider在下列情况中,使用microsoft sql server 7.0 或者更新版本的中间层应用程序,使用microsoft data engine (msde)或icrosoft sql server 7.0 或者更新版本的单层应用程序. 

建议将ole db provider for sql server (sqloledb)和ole db .net data provider一起使用. 

对于microsoft sql server 6.5和更早的版本,你必须同时使用ole db provider for sql server 和 ole db.net data provider. 

推荐使用microsoft sql server 6.5和更早的版本或是oracle的中间层应用程序使用ole db .net data provider. 

对于microsoft sql server 7.0 或者更新版本,推荐sql server .net data provider. 

推荐单层应用程序使用microsoft access数据库. 

不推荐一个中间层程序同时使用ole db .net data provider和microsoft access数据库. 

不再支持ole db provider for odbc (msdasql)                  


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12362596.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存