null第三篇 数据操作篇 第三篇 数据操作篇 东鹏电子信息有限公司内容
内容
第 7 章 数据库与 ADO.NET 基础
第 8 章 Web 窗体的数据控件
第 9 章 ASP.NET 操作数据库
第 10 章 访问其他数据源 *第 10 章 访问其他数据源第 10 章 访问其他数据源主讲:Jayce_Zou*本章内容
主讲:Jayce_Zou本章内容
主讲:Jayce_Zou
使用 ODBC .NET Data Provider
使用 OLE DB.NET Data Provider
访问 MySql
访问 Excel
访问 txt
访问 SQLite
*ODBC .NET Data Provider 简介
主讲:Jayce_Zou ODBC .NET Data Provider 简介
主讲:Jayce_Zou ODBC(Open Database Connection,开放式数据互连)是访问数据库的一个统一的接口标准,它允许开发人员使用 ODBC API(应用程序接口)来访问多种不同的数据源,并执行数据操作。
当使用应用程序时,应用程序首先通过使用 ODBC API 与驱动管理器进行通信。
ODBC API 由一组 ODBC 函数调用组成,通过 API 调用 ODBC 函数提交 SQL 请求,然后驱动管理器通过分析 ODBC 函数并判断数据源的类型。
驱动管理器会配置正确的驱动器,然后将 ODBC 函数调用传递给驱动器。最后,驱动器处理 ODBC 函数调用,把 SQL 请求发送给数据源,数据源执行相应操作后,驱动器返回执行结果,管理器再吧执行结果返回给应用程序。 *
主讲:Jayce_Zou
主讲:Jayce_Zou 使用命名空间 System.Data.Odbc 才能够使用 ODBC .NET Data Provider 来访问 ODBC 数据源。通过 ODBC 能够连接和执行数据操作,其访问方式和 SQL Server .NET Data Provider 相似,都需要先与数据源建立连接并打开连接,然后创建 Command 对象执行相应操作,最后关闭数据连接。
ODBC 对象如下:
OdbcConnection:建立与 ODBC 数据源的连接。
OdbcCommand:执行一个 SQL 语句或存储过程。
OdbcDataReader:与 Command 对象一起使用,读取 ODBC 数据源。
OdbcDataAdapter:创建适配器,用来填充 DataSet。
OdbcCommandBuilder:用来自动生成插入、更新、删除等操作的 SQL 语句。*使用 DSN 的连接字符串进行连接
主讲:Jayce_Zou 使用 DSN 的连接字符串进行连接
主讲:Jayce_Zou 使用 DSN(Data Source Name,数据源名)连接数据库,必须首选创建 ODBC 数据源,步骤如图:*
主讲:Jayce_Zou
主讲:Jayce_Zou *
主讲:Jayce_Zou
主讲:Jayce_Zou *
主讲:Jayce_Zou
主讲:Jayce_Zou *示例代码
主讲:Jayce_Zou 示例代码
主讲:Jayce_Zou 当创建完成数据源之后,就可以使用 OdbcConnection 对象连接应用程序和数据库,在使用 OdbcConnection 对象同样需要使用命名控件 System.Data.Odbc,示例代码如下所示 :
string str = @“DSN=guojing”; //使用 ODBC 数据源
OdbcConnection con = new OdbcConnection(str);
con.Open();
string strsql = "select * from mytable";
OdbcDataAdapter da = new OdbcDataAdapter(strsql,con);
DataSet ds = new DataSet();
da.Fill(ds, "tablename");
若需要执行插入、更新、删除等操作,可以使用 Command 对象执行相应的操作,示例代码如下所示:
OdbcCommand cmd = new OdbcCommand("insert into mytable values ('title')",con);
cmd.ExecuteNonQuery(); *使用接字符串进行连接(ACCESS)
主讲:Jayce_Zou 使用接字符串进行连接(ACCESS)
主讲:Jayce_Zou 示例代码如下所示:
string str = "provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" + Server.MapPath("acc.mdb") + "";
//配置连接对象
OdbcConnection con = new OdbcConnection(str);
//打开连接
con.Open(); *使用Windows 身份验证连接(SQL Server)
主讲:Jayce_Zou 使用Windows 身份验证连接(SQL Server)
主讲:Jayce_Zou 当使用 Windows 安全认证进行数据连接时,SQL Server 无需用户提供连接的用户名和密码即可连接, 因为 Windows 安全认证是通过 Windows 登录时的账号来登录的。
开发 ASP.NET 应用程序时,需要显式的声明这是一个安全的连接,示例代码如下所示。
@" Driver={SQL Server}; Server=(local);Database=mytable;Trusted_Connection=Yes";*OLE DB.NET Data Provider 简介
主讲:Jayce_Zou OLE DB.NET Data Provider 简介
主讲:Jayce_Zou
OLE DB(Object Link and Embedding Database,对象连接与嵌套数据库)是访问数据库的另一个统一的接口标准,它建立在 ODBC 基础之上,不仅能够提供传统的数据库访问,并且能够访问关系型数据库和非关系型数据库。
OLE DB 其本质就是一个封装数据库访问的一系列 COM 接口,使用 COM 接口不仅能够减少应用程序和数据库之间的通信和交互,也能够极大的提升数据库的性能,让数据库的访问和操作更加便捷。
OLE DB.NET Data Provider 支持 OLE DB Provider 包括:
SQLOLEDB:用来访问 SQL Server 数据库。
MSDAORA:用来访问 Oracle 数据库。
Microsoft.Jet.OLEDB.4.0:用于访问 Access 等使用 Jet 引擎的数据库。*
主讲:Jayce_Zou
主讲:Jayce_Zou
使用 OLE DB.NET Data Provider 访问数据库同 ODBC .NET Data Provider 相同,具有 Connection 对象、Command 对象等用于数据库的连接和执行,以及数据存储等,常用对象如下所示:
OleDbConnection:建立与 ODBC 数据源的连接。
OleDbCommand:执行一个 SQL 语句或存储过程。
OleDbDataReader:与 Command 对象一起使用,读取 ODBC 数据源。
OleDbDataAdapter:创建适配器,用来填充 DataSet。
OleDbCommandBuilder:用来自动生成插入、更新、删除等操作的 SQL 语句。
连接后,使用 Command 对象进行数据库操作,并使用 Close 方法关闭数据连接。*使用接字符串进行连接(ACCESS)
主讲:Jayce_Zou 使用接字符串进行连接(ACCESS)
主讲:Jayce_Zou
使用接字符串进行连接(ACCESS),示例代码如下:
string str = "provider=Microsoft.Jet.OLEDB.4.0 ;
Data Source=" + Server.MapPath("access.mdb") + "";
OleDbConnection con = new OleDbConnection(str);
try
{
con.Open(); //打开连接
Label1.Text = "连接成功"; //显式提示信息
con.Close(); //关闭连接
}
catch(Exception ee) //抛出异常
{
Label1.Text = "连接失败";
}*使用接字符串进行连接(SQL Server)
主讲:Jayce_Zou 使用接字符串进行连接(SQL Server)
主讲:Jayce_Zou
OleDbConnection con= new OleDbConnection();
con.ConnectionString="Provider=SQLOLEDB;Data
Source=(local);Initial Catalog=mytable;uid=sa;pwd=sa";
try
{
con.Open(); //尝试打开连接
Label1.Text = "连接成功"; //显式连接信息
con.Close(); //关闭连接
}
catch
{
Label1.Text = "连接失败"; //抛出异常
}*MySql 简介
主讲:Jayce_Zou MySql 简介
主讲:Jayce_Zou MySql是一套开源的小型关系型数据库,MySql 能够执行标准的 SQL 语句进行数据操作。
MySql 能够支持多种操作系统,包括 Windows、Linux、Mac OS 等等,是一种跨平台的数据库产品, MySql 具有功能性强、体积小、运行速度快、成本低和安全性强等特点,MySql 还具有以下特性:
MySql 具有客户端/服务器结构的分布式数据库管理系统。
支持多个操作系统。
为多种编程语言提供 API。
支持多用户,多线程操作数据库。
提供了 TCP/IP,ODBC 和 JDBC 等多种数据库连接方式。
优化 SQL 语句能力,提升性能。
支持 ANSI 标准的所有数据类型。
开放源代码,并且可以免费下载安装。
MySql 不仅具有良好的性能
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
现,同时 MySql 还能够执行复杂的 SQL 语句操作,但是 MySql 的缺点就在于无法创建和使用存储过程,缺少一些大型数据库所必备的功能。 *连接MYSQL
主讲:Jayce_Zou 连接MYSQL
主讲:Jayce_Zou 连接MYSQL,需要新建 DSN,如图 :
*
主讲:Jayce_Zou
主讲:Jayce_Zou 配置完成后,即可通过使用 ODBC 类库进行数据库操作,示例代码如下所示:
string str = @"DSN=guojing";
OdbcConnection con = new OdbcConnection(str);
con.Open();
OdbcDataAdapter da = new OdbcDataAdapter("select * from mytables", con);
DataSet ds = new DataSet();
da.Fill(ds, "MySqltable");
OdbcCommand cmd = new OdbcCommand("insert into mytables values ('MySql title')", con);
cmd.ExecuteNonQuery();
con.Close();*
主讲:Jayce_Zou
主讲:Jayce_Zou 当需要脱离 DSN 连接 MySql 数据库时,可以不需要配置 DSN 来访问 MySql 数据库,在编写 MySql 数据库连接字符串时, 需要指定驱动程序名称、IP 地址或数据库名,常用的关键字如下所示:
Driver:设置驱动程序名。
Server:设置服务器的 IP 地址或者是本地主机。
Database:设置数据库名称。
Option:设置选项值。
UID:设置连接用户名。
PWD:设置连接密码。
Port:设置连接端口,默认值为 3306。
编写 MySql 数据库连接字串代码如下所示:
string strbase = @"Driver=MySql ODBC 5.1 Driver;Server=localhost;Database=test;UID=guojing"; *访问 Excel
主讲:Jayce_Zou 访问 Excel
主讲:Jayce_Zou 因为 Excel 并不是数据库,所以 Excel 不支持相关的数据结构,所以当开发人员需要对 Excel 进行数据访问时,会变得比较困难。
但是从另一个角度来看,Excel 文件是由一张张工作表组成,其结构很像数据库中的表,所以,应该能够通过相应的手段让应用程序访问 Excel。
ASP.NET 提供了一些类和方法用于连接和访问 Excel 数据库,极大的方便了开发人员的开发,简化了开发代码。
ASP.NET 访问 Excel 通常有两种方法,一种是使用 ODBC .NET Data Provider 进行访问,另一种则是使 用 OLE DB .NET Data Provider进行访问。
这两种访问方式在原理上基本相同,同 ADO.NET 其他对象一样, 访问和操作 Excel 文件时,都必须使用 Connection 对象进行连接,然后使用 Command 对象执行 SQL 命令。 *使用 DSN 连接 Excel 数据源
主讲:Jayce_Zou 使用 DSN 连接 Excel 数据源
主讲:Jayce_Zou 首先,必须创建一个 Excel 数据源,例如 data.xls,并手动增加若干数据,如图:*
主讲:Jayce_Zou
主讲:Jayce_Zou 配置完成后,就可以通过 ASP.NET 应用程序访问 Excel 数据源,示例代码如下所示:
string str = @"DSN=myexcel";
OdbcConnection con = new OdbcConnection(str);
con.Open();
OdbcDataAdapter da = new OdbcDataAdapter("select * from [Sheet1$]",con);
DataSet ds = new DataSet();
int count=da.Fill(ds, "exceltable"); //填充数据集
for (int i = 0; i < count; i++) //遍历数据
{
Response.Write(ds.Tables["exceltable"].Rows[i]["姓名"].ToString()+"
"); //输出数据
}*使用 OLE DB .NET Data Provider 连接 Excel
主讲:Jayce_Zou 使用 OLE DB .NET Data Provider 连接 Excel
主讲:Jayce_Zou 使用 OLE DB .NET Data Provider 连接和操作 Excel 数据源,示例代码如下所示:
string str =
@"Provider=Microsoft.Jet.OleDb 4.0;Data
Source="+Server.MapPath("data.xls")+";Extended Properties= Excel 8.0;";
OleDbConnection con = new OleDbConnection(str); //创建连接对象
con.Open(); //尝试打开连接
Label1.Text = "连接成功"; //显式连接信息
con.Close(); //关闭连接*访问 txt
主讲:Jayce_Zou 访问 txt
主讲:Jayce_Zou
文本文件(.txt)是一种最基本的文件类型,访问 txt 的方法比较多:
使用 ODBC .NET Data Provider 进行访问,
使用 OLE DB .NET Data Provider 进行访问。
通过 System.IO 进行文本文件的访问。 *使用 ODBE.NET Data Provider 连接 txt
主讲:Jayce_Zou 使用 ODBE.NET Data Provider 连接 txt
主讲:Jayce_Zou 使用 ODBE.NET Data Provider 建立与 txt 文件的连接需要在连接字符串中指定驱动器名,同样可以在管 理工具中创建【数据源(ODBC)】来访问 txt 文本文件,如图:
*
主讲:Jayce_Zou
主讲:Jayce_Zou txt 基本上没有类似与表的数据结构,所以在使用 SQL 语句时,基本上是通过查询 txt 文件来实现的,示例代码如下所示:
OdbcConnection con = new OdbcConnection(@"DSN=txtexample");
con.Open(); //打开连接
OdbcDataAdapter da = new OdbcDataAdapter(“select * from data.txt”, con); //创建适配器
DataSet ds = new DataSet(); //创建数据集
int count=da.Fill(ds, "txttable"); //填充数据集
for (int i = 0; i < count; i++) //遍历输出
{
Response.Write(ds.Tables["txttable"].Rows[i]["title"].ToString()+"
");
}*使用 OLE DB .NET Data Provider 连接 txt
主讲:Jayce_Zou 使用 OLE DB .NET Data Provider 连接 txt
主讲:Jayce_Zou 使用 OLE DB .NET Data Provider 建立与 txt 文件的连接,只需要在连接字串中指定提供程序名、数据源名、扩展属性、HDR 和 FMT 等参数即可,示例代码如下所示 :
OleDbConnection olecon = new OleDbConnection
(@"Provider=Microsoft.Jet.OLEDB 4.0; Data Source=
c:\sample\;ExtendedProperties=text;HDR=yes;FMT=Delimited");
OdbcDataAdapter da = new OdbcDataAdapter("select * from data.txt", con);
DataSet ds = new DataSet(); //创建数据集
int count=da.Fill(ds, "txttable"); //填充数据集
for (int i = 0; i < count; i++) //遍历数据集
{
Response.Write(ds.Tables["txttable"].Rows[i]["title"].ToString()+"
"); //输出数据
}
注意:txt 文件的数据连接字串中,数据库结构的中“数据库”的概念对于 txt 文件而言应该是文件所在的目录,而不是具体的某个文件。而具体的某个文件,相当于是数据库中“表”的概念。 *使用 System.IO 命名空间
主讲:Jayce_Zou 使用 System.IO 命名空间
主讲:Jayce_Zou System.IO 能够创建文件,从而与 txt 文件进行交互,在使用 System.IO 命名空间时,通常需要使用各种 类来进行文件操作,常用的类如下所示:
File:提供用于创建、复制、删除、移动和打开文件的静态方法。
FileInfo:提供创建、复制、删除、移动和代开文件的实例方法。
StreamReader:从数据流中读取字符。
StreamWriter:向数据流中写入字符。
File 类包含的主要方法如下所示:
OpenText:打开现有的文件进行读取。
Exists:判断一个文件是否存在。
CreateText:创建或打开一个文件以便写入文本字符串。
AppendText:将 txt 文本追加到现有的文本。 *示例代码
主讲:Jayce_Zou 示例代码
主讲:Jayce_Zou if (File.Exists(Server.MapPath("data.txt"))) //判断文件是否存在
{
Response.Write("文件存在"); //输出文件存在
File.OpenText(Server.MapPath("data.txt")); //打开文件
}
StreamReader rd = File.OpenText(Server.MapPath("data.txt"));
while (rd.Peek() != -1) //如果没有读完
{
Response.Write(rd.ReadLine() + "
"); //输出信息
}
Peek 方法用于返回指定的 StreamReader 对象流中的下一个字符,但是不会把这个字符从 流中删掉。如果流中没有文本字符,则会返回-1。 *SQLite 简介
主讲:Jayce_Zou SQLite 简介
主讲:Jayce_Zou SQLite 是一款轻量级数据库,其类型在文件形式上很像 Access 数据库,但是相比之下SQLite 操作更快。
SQLite 也是一种文件型数据库,但是 SQLite 却支持多种 Access 数据库不支持的复杂的 SQL 语句,并且还支持事务处理。
SQLite 数据库具有小巧和轻量的特点,在 SQLite 数据库开发时,SQLite 是为嵌入式特别准备的,所以 SQLite 具有小巧、资源占用率低等特点。
在嵌入式设备中,只需要几百 k 的内存即可。而同时 SQLite 支持 多种操作系统,包括 Windows、Linux 等主流操作系统。
SQLite 能够与多种语言结合,包括.NET、PHP、Java 等。同样 SQLite 能够支持 ODBC 接口,相比于 MySql 数据库而言,SQLite 执行效率更快。
虽然 SQLite 小巧,但是 SQLite 同样能够支持 SQL 语句,这些 支持的 SQL 语句相比其他的数据库产品,毫不逊色。 *
主讲:Jayce_Zou
主讲:Jayce_Zou SQLite 支持的常用 SQL 语句如下所示:
CREATE INDEX:创建索引。
CREATE TABLE:创建表。
CREATE TRIGGER:创建触发器。
CREATE VIEW:创建视图。
DELETE:执行删除操作。
DROP INDEX:删除索引。
DROP TABLE:删除表。
DROP TRIGGER:删除触发器。
DROP VIEW:删除视图。
INSERT:执行插入操作。
SELECT:执行选择,查询操作。
UPDATE:执行更新操作。
SQLite 不仅能够支持常用的 SQL 语句,SQLite 还包括其他 SQL 语句方便开发人员高效的执行数据库操作。*SQLite 连接方法
主讲:Jayce_Zou SQLite 连接方法
主讲:Jayce_Zou 通过访问 http://sourceforge.net/project/showfiles.php
?group_id=132486 页面下载 SQLite for ADO.NET,下载完成后,在应用程序中添加引用即可。
在添加引用后,可以使用命名空间来为相应的操作提供支持,示例代码如下所示:
using System.Data.SQLite; //使用 SQLite 命名空间
连接 SQLite,示例代码如下所示:
SQLiteConnection con = new SQLiteConnection("Data Source="+Server.MapPath("sqlite.db"));
con.Open(); //打开连接
Response.Write("连接成功"); //提示连接成功
*小结
主讲:Jayce_Zou 小结
主讲:Jayce_Zou 本章介绍了 ADO.NET 访问其他数据源的知识,这些数据源包括 MySql、Excel、txt、SQLite 等常用的数据源,这些数据源虽然在性能和功能上都与 SQL Server 有一段距离,但是在小型、轻便的数据操作和应用中,这些数据库都起着非常重要的作用。
本章还包括:
使用 ODBC.NET Data Provider:讲解了如何使用 ODBC.NET Data Provider 进行数据库存储。
使用 OLE DB.NET Data Provider:讲解了如何使用 OLE DB.NET Data Provider 进行数据库存储。。
访问 MySql:讲解了如何通过 ADO.NET 访问 MySql。
访问 Excel:讲解了如何通过 ADO.NET 访问 Excel。
访问 txt:讲解了如何通过 ADO.NET 访问 txt。
访问 SQLite:讲解了如何通过 ADO.NET 访问 SQLite。
通过本章的知识介绍,可以比较深入的了解 ADO.NET 和其他数据源的连接、访问、操作等方法,熟练掌握 ADO.NET,能够在.NET 平台下的大部分的数据开发中事半功倍。*