c#连接数据库
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
连接并使用数据库一般步骤
1.创建数据库,如Access,SQL Server 2000等 2.使用Connection对象连接数据库 3.使用Command对象对数据源执行SQL 命令并返回数据 4.使用DataReader和DataSet对象读取和 处理数据源的数据 5.断开数据库连接
例1
using System; using System.Data.SqlClient; namespace MyFirstExample { class MyFirstExample { static void Main(string[] args) {
//连接SQL Server2000数据库的字符串
//适用于SQL Server数据库
return @"server=localhost;database=Northwind;uid=sa;pwd= sa";
//适应于Access等数据库
return @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\MyFile.mdb"; }
1 ADO.NET与数据库概述
为了解决此问题,ADO.NET将存取数据 和数据处理分开,达到离线访问数据的目 的,使得数据库能够执行其他操作。因此 将ADO.NET架构分成.NET 数据提供程序 和DataSet数据集(数据处理的核心)两 个主要部分。 数据库是有组织的信息集合。关系型数据 库是一组相关信息的集合,组成表格结构。
插入新的数据记录
class ADONETWriteQuery { static void Main(string[] args) {
//连接SQL Server2000数据库的字符串
String connectionString = @"server=localhost\hmx;database=mydata;uid=sa; pwd=";
//创建SqlCommand对象
SqlCommand mySqlCommand = mySqlConnection.CreateCommand(); string commandString = "Select CustomerID,CompanyName,ContactName,Address " + "From Customers Where CustomerID = 'ALFKI'";
//创建SqlConnection对象,并连接到SQL Server2000的 mydata 数据库
SqlConnection mySqlConnection = new SqlConnection(connectionString);
插入新的数据记录
//创建SqlCommand对象
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
连接数据库
进行ADO.NET的开发首先需要进行数据 库的连接。本例子中的数据库是SQL Server2000中自带的Northwind数据库。 下面的代码是一个连接字符串样本,用来 访问Northwind数据库。
连接数据库
ቤተ መጻሕፍቲ ባይዱ
static private string GetConnectionString() {
ODBC
ODBC即Open Database Connectivity, 开放式数据库连接技术。使用ODBC的目 标是使程序员开发的数据库项目可以几乎 不加改动地访问不同操作系统平台上的各 种数据库,如Windows平台上的SQL Server,Oracle,Access,UNIX平台上 的Oracle等。
String connectionString = @"server=localhost\hmx;database=Northwind;uid=sa;pwd=";
//创建SqlConnection对象,并连接到SQL Server2000自带的 Northwind 数据库
SqlConnection mySqlConnection = new SqlConnection(connectionString);
.NET数据提供者对象
Connection对象 Command对象 DataReader对象 DataAdapter对象
用户对象
一般性数据类对象可以为数据库中的信息存储 一个本地拷贝,从而可以在切断数据库连接时 处理这个信息。可以按任何顺序读行,可以按 灵活的方式搜索、排序和过滤这些行,甚至可 以改变这些行,然后将所做的改变同步到数据 库中,主要包含以下几种对象。
2 ADO.NET类和对象概述
ADO.NET中的类大概可分为.NET数据提供者对 象和用户对象两种,.NET数据提供者对象专用 于每一种类型的数据源,专用于提供者的用户 对象完成在数据源中实际的读取和写入工作。 用户对象是将数据读入到内存中后用来访问和 操作数据的对象。用户对象以非连接方式使用。 在数据库关闭之后也可以使用内存中的数据, 而.NET数据提供者对象中要求活动的连接。
DataSet对象 DataTable对象 DataRow对象 DataColumn对象
使用System.Data命名空间
进行ADO.NET程序开发的第一步就是引用System.Data 命名空间,其中含有所有的ADO.NET类,将using指令 插入在程序的顶端: using System.Data; 1. SQL Server .NET数据提供者 using System.Data.SqlClient; 2. OLE DB .NET数据提供者 using System.Data.OleDb; 3. Oracle数据提供者 using System.Data.OracleClient; 4. ODBC .NET数据提供者 using System.Data.Odbc;
数据库访问接口
1 ADO.NET与数据库概述
ADO.NET(即Active Data Objects.NET) 是.NET Framework的重要组成部分,使用 ADO.NET可以很方便的访问数据库。 ADO.NET是数据库应用程序和数据源沟通的桥 梁,主要提供一个面向对象的数据存储结构, 用来开发数据库应用程序。ADO.NET的架构主 要是希望能够在做处理数据的同时,不要一直 和数据库联机,而导致一直占用系统资源的现 象发生。
mySqlCommand.CommandText = commandString; mySqlConnection.Open();
//用Connection对象的Open()方法打开数据库
//创建SqlDataReader对象,并执行ExecuteReader()方法
SqlDataReader mySqlDataReader = mySqlCommand.ExecuteReader();
//创建SQL的Insert语句,在Student表中输入一条新的记录
string InsertString = "INSERT INTO Student(StudentNo,StudentName,Sex) VALUES('060203','王二','男')"; mySqlCommand.CommandText = InsertString;
OLEDB
ODBC接口出现之后,在很长的时间内一直是程 序员开发数据库系统的首选接口技术,因为它 比较简单。但ODBC接口有两个主要的缺陷。 — ODBC接口只能连接关系型数据,比如,关 系型数据库、Excel、规定格式的文本等。但不 能用于非关系型的数据,如电子邮件数据等。 — ODBC由于需要支持很多类型的数据库,普 遍适用,但对每种数据库的支持都不是特别理 想。
OLEDB和ODBC的比较
OLEDB接口追求的是“专用”,每种类 型的数据库有自己专用的OLEDB接口驱 动程序。 ODBC接口追求的是“通用”,首先都要 使用ODBC数据源管理器,然后调用自己 的驱动程序。 提示:正是由于OLEDB接口的驱动程序 是针对特定类型的数据库设计的,所以尽 管通用性差一些,但效率更高。
// 读取每行记录
mySqlDataReader.Read(); Console.WriteLine("mySqlDataReader[\"CustomerID\"]=" + mySqlDataReader["CustomerID"]);
// 显示列属性值
Console.WriteLine("mySqlDataReader[\"CompanyName\"]=" + mySqlDataReader["CompanyName"]); Console.WriteLine("mySqlDataReader[\"ContactName\"]=" + mySqlDataReader["ContactName"]); Console.WriteLine("mySqlDataReader[\"Address\"]=" + mySqlDataReader["Address"]); Console.Write("恭喜,显示数据任务完成!"); Console.ReadLine();
//关闭SqlDataReader对象
mySqlDataReader.Close();
//关闭数据库连接
mySqlConnection.Close(); } } }
3 ADO.NET基本数据库编程
常用的数据库编程包括连接数据库、插入 新的数据、删除数据和修改数据,即执行 SQL语法中的Insert、Delete、 Update语 句。
OLEDB
OLEDB(Object Linking and Embedding,即对 象链接和嵌入技术)是新一代数据接口标准,其 设计要求是能够以统一的方式访问所有的数据类 型。换句话说,开发的数据库项目的后台数据库 几乎可以是所有的数据类型。目前OLEDB也逐步 成为了利用ADO.NET开发数据库项目的接口标准。 微软已经开发了许多标准的OLEDB驱动程序。 OLE DB接口中没有集中管理OLE DB驱动程序, 而是开发了各种数据库的OLE DB驱动程序,程序 员可以按照数据库类型的不同选择驱动程序。
.NET数据提供者对象
常用的. NET数据提供者对象分为以下4种:
SQL Server数据源提供程序 OLE DB(Object Linking and Embedding, 即对象链接和嵌入技术)数据源提供程序 ORACLE数据源提供数据 与ODBC兼容的数据源提供程序。
所有的数据提供程序都位于System.Data 命名空间中。
其中C:\ MyFile.mdb为存放Access数据库文件的位 置。
插入新的数据记录
使用Command对象的ExecuteNonQuery()方法 来实现插入数据操作,用SQL的Insert语句来设 定具体的要插入的新记录内容。 下面的程序实现在Northwind数据库中的 Student表中插入一条新的记录。 程序代码如下: using System; using System.Data; using System.Data.SqlClient; namespace ADONETWriteQuery {
使用ADO.NET访问数据库
主要内容
ADO.NET与数据库概述 ADO.NET类和对象概述 ADO.NET基本数据库编程
数据库访问接口
C#中接口就是ADO.NET和后台的数据库(包 括SQL Server,Oracle,Access,Excel电子 表格,甚至文本文件等)的连接部分。 微软设计的ADO.NET并不是针对某个特定的数 据库的,而是希望能够从所有的主流数据库中 提取数据,而且ADO.NET也成功做到了这一点。 这里的接口就是ADO.NET和数据库如何连接的 方法。 基于ADO.NET开发的数据库系统,其结构如下 图所示。