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