C#数据库入门经典的内容简介

2024-05-10 09:52

1. C#数据库入门经典的内容简介

本书介绍了每个C#程序员都需要知道和理解的所有关系数据库和ADO.NET的基础知识。这些概念和技术是所有数据库编程的基础。即使您以前没有学习过相关内容,通过完整地学习本书,也能够以专业的方式处理绝大多数实际的数据库应用程序。可以按照如下顺序安排章节内容。.本书主要面向对如何使用C#访问关系数据感兴趣的读者。本书假设读者只具备少量的C#使用经验,并且不需要预先具有使用关系数据库或关系数据库SQL语言的经验。我们将详细介绍所有基础知识,并按照易于学习的顺序逐步介绍每个主题,从而帮助读者在学习本书的过程中逐步掌握相关知识和经验。因此,读者最好按照顺序学习每一章。

C#数据库入门经典的内容简介

2. C#数据库入门经典的目录

第1章 开发工具 11.1 安装VCSE和SSE 11.2 安装SSMSE 51.3 安装SQL Server文档 71.4 安装样本数据库 81.4.1 安装Northwind创建脚本 81.4.2 创建Northwind样本数据库 91.4.3 卸载Northwind创建脚本 111.5 小结 11第2章 使用开发工具 132.1 使用SSMSE 132.2 配置VCSE 222.3 使用BOL 272.4 小结 30第3章 SQL入门 333.1 SQL概述 333.2 检索数据 343.2.1 执行简单查询 343.2.2 使用WHERE子句 373.2.3 数据排序 403.3 插入数据 423.4 更新数据 443.5 删除数据 453.6 T-SQL的数据类型 463.6.1 数值数据类型 473.6.2 货币数据类型 473.6.3 字符串数据类型 473.6.4 日期和时间数据类型 483.7 二进制数据类型 483.8 其他数据类型 483.9 数据类型的优先序 493.10 小结 50第4章 ADO.NET简介 514.1 使用ADO.NET的原因 514.1.1 从ADO到ADO.NET 514.1.2 ADO.NET并非ADO的新版本 524.1.3 ADO.NET和.NET基类库 524.2 理解ADO.NET体系结构 544.2.1 使用SQL Server数据提供程序 564.2.2 使用OLE DB数据提供程序 624.2.3 使用ODBC数据提供程序 664.3 数据提供程序是API 734.4 小结 74第5章 创建连接 755.1 数据提供程序连接类概述 755.2 用SqlConnection连接到SSE 765.2.1 调试到SQL Server的连接 805.2.2 SqlConnection中的安全与口令 815.2.3 使用SQL Server安全机制 815.2.4 SqlConnection中的连接字符串参数 815.2.5 连接池 835.3 连接对象的进阶用法 835.3.1 在连接构造函数中使用连接字符串 835.3.2 显示连接信息 835.4 用OleDbConnection连接到SSE 885.5 小结 90第6章 Command对象 916.1 创建命令 916.1.1 关联命令与连接 936.1.2 设置Command对象的文本 946.2 执行命令 956.3 执行具有多个结果的命令 986.4 执行语句 1016.5 命令参数 1046.6 Prepare方法 1096.7 小结 110第7章 数据读取器 1117.1 数据读取器概述 1117.2 使用序数索引器 1147.3 使用列名索引器 1177.4 使用类型访问器方法 1187.5 获取数据的信息 1237.6 获取表的信息 1277.7 使用数据读取器处理多个结果集 1307.8 小结 133第8章 数据集和数据适配器 1358.1 理解对象模型 1358.1.1 数据集与数据读取器 1368.1.2 数据集概述 1368.1.3 数据适配器概述 1378.1.4 DataTable、DataColumn和DataRow对象 1388.2 使用数据集和数据适配器 1388.2.1 数据集的筛选和排序 1428.2.2 比较FilterSort和PopDataSet 1478.2.3 使用DataView 1478.2.4 修改数据集中的数据 1518.3 将变化保存到数据源中 1548.4 并发 1718.5 使用数据集和XML 1728.6 在没有数据集的情况下使用数据表 1758.7 理解有类型和无类型的数据集 1778.8 小结 178第9章 数据绑定 1819.1 数据绑定的定义 1819.2 执行简单数据绑定 1819.3 执行复杂数据绑定 1849.4 理解数据绑定的工作原理 1899.5 控件与数据源的同步 1919.6 使用数据栅格更新 1949.7 小结 199第10章 理解表和关系 20110.1 管理表 20110.2 创建表 20110.2.1 使用SSMSE创建表 20210.2.2 使用SQL创建表 20310.3 删除表 20610.3.1 使用SSMSE删除表 20610.3.2 使用SQL删除表 20710.4 表之间的关系 20810.5 数据完整性 21010.5.1 实体完整性 21110.5.2 引用完整性 21210.5.3 测试实体完整性和引用完整性 21410.6 规范化 21710.7 小结 218第11章 查询 11911.1 更多SQL查询语法 21911.1.1 DISTINCT关键字 21911.1.2 子查询 22111.1.3 GROUP BY子句 22511.1.4 其他合计函数 22611.1.5 日期函数 22811.1.6 CASE表达式 22911.1.7 连接 23411.2 小结 245第12章 存储过程 24712.1 创建存储过程 24712.2 修改存储过程 25412.3 删除存储过程 25512.4 在C#中使用存储过程 25712.5 小结 262第13章 处理异常 26313.1 处理ADO.NET异常 26313.2 处理数据库异常 27113.3 小结 280第14章 使用事务 28114.1 何时使用事务 28114.2 理解ACID属性 28214.3 事务的编写 28214.3.1 在SQL中编写事务 28314.3.2 在ADO.NET中编写事务 29114.4 进一步学习的建议 29514.5 小结 296第15章 处理ADO.NET事件 29715.1 理解事件和委托 29715.2 添加和删除事件处理程序 29815.3 引发和处理ADO.NET事件 29815.3.1 使用连接对象事件 29915.3.2 使用行更新事件 30615.3.3 利用多个处理程序 31215.4 小结 314第16章 使用文本和二进制数据 31516.1 理解SQL Server文本和二进制数据类型 31516.2 在数据库中存储图像 31616.3 从数据库中检索图像 32216.4 处理文本数据 32716.5 小结 336第17章 使用XML 33717.1 XML的定义 33717.2 理解XML文档 33817.3 理解XML声明 33917.4 使用FOR XML 34017.5 使用OPENXML 34617.6 使用XML数据类型 35117.7 小结 358第18章 LINQ简介 35918.1 LINQ的定义 35918.2 安装LINQ 36118.3 使用LINQ to SQL 36618.4 使用LINQ to DataSet 37318.5 小结 381

3. 求C#语言开发数据库教程

C#语言提供了丰富的数据库操作类库,极大地方便了对数据库的操作。在C#中,常用的有三种 访问数据库的模式分别为:SqlClient模式、OleDb模式和Odbc模式。其中SqlClient模式是微软老大哥专门为其产品Sql Server数据库而设计的,所以如果欲使用Sql Server数据库开发应用程序的话,建议使用这种模式,其性能和效率是比其他模式的要高。OleDb模式和Odbc模式可以运用在任何支持该模式的数据 库产品中,如Access数据库、DB2、Sybase和Sql Server 数据库等。下面简单介绍C#操作数据库的大致过程:

1、引入相关的命名空间

在C#中要操作数据库,一般情况需要引入两个命名空间,在三种连接模式中都要引入下面的命名空间:

     System.Data;

而另外一个命名空间,使用不同的连接模式而不同,如果使用SqlClient模式的话,则需要引入如下命名空间:

     System.Data.SqlClient;

如果使用OleDb模式的话,需要使用下面的命名空间:

     System.Data.OleDb;

如果使用Odbc模式的话,需要使用下面的命名空间:

    System.Data.Odbc;

2、定义连接字符串,并建立连接对象

在C#中,如果想连接数据库的话,需要使用Connection连接对象。同样,不同的连接模式下,所使用的连接对象也不同:

(1)如果使用SqlClient模式的话,其基本连接字符串和连接对象如下:

连接字符串:string connString = "server=.;database=testDB;uid=sa;pwd=;";

其中,server是指数据库所在的机器(服务器),如果使用当前机器(本地机器)的话,可 以使用“.”、“(local)”、“127.0.0.1”或本地机器的名字。如果使用其它机器上的数据库的话,可以使用那台机器的机器名字(确保域和工 作组的正确)或IP地址。database指的数据库的名字。uid和pwd分别代表连接数据库的用户名和密码。

定义连接字符串后,就可以建立SqlClient模式下的连接对象了,在SqlClient模式下,应使用SqlConnection。

SqlConnection sConn = new SqlConnection(connString);

(2)如果使用OleDb模式的话,其基本连接字符串和连接对象如下:

连接字符串:string connString = "Provider=SQLOLEDB.1;DataSource=(local);uid=sa;pwd=;Initial Catalog=testDB";

其中,Provider给出数据提供程序;DataSource给出数据库所在的服务器名或 IP地址(具体同SqlClient模式下的server关键字);uid和pwd分别指用户名和密码;Initial Catalog给出的是所连接的数据库的名字。如果使用Access数据库的话,其连接字符串的形式应该如下:

string connString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source = F:\\student.mdb";

定义好连接字符串后,就可以定义连接对象了,在该模式下,应使用OleDbConnection。

OleDbConnection odConn = new OleDbConnection(connString);

(3)如果使用Odbc模式的话,其基本连接字符串和连接对象如下:

连接字符串:string connString = "Driver={Sql Server};Server=.;Database = testDB;uid=sa;pwd=;";

如果使用Access数据库,其连接字符串如下:

string connString = "{Microsoft Access Driver(*.mdb)};Dbq = \"F:\\student.mdb\";";

定义好连接字符串后,使用OdbcConnection建立连接对象:

OdbcConnection oConn = new OdbcConnection(connString);

3、打开数据库连接

打开数据库使用Open方法,但在试图打开数据连接时会发生错误,因此常采用如下的异常控制方法(这里假设打开SqlClient模式下连接,实际上只不过连接对象的名字不同而已):

     try
            {
                     sConn.Open();
            }
            catch(Exception ex)
            {
                      MessageBox.Show("发生错误:"+ex.Message);
                     //Console.WriteLine("发生错误:"+ex.Message); //在控制台下使用这种方式
            }

4、Command命令对象的应用

Command用于向数据库传输的命令的对象,其构造函数常用两个参数,一个参数是所使用的 命令文本(CommandText),另一个为所使用的连接对象Connection。根据不同的数据库连接模式,其形式也不同,SqlCommand对 应着SqlClient模式;OleDbCommand对应着OleDb模式,OdbcCommand对应着Odbc模式。

假设我们想使用SqlClient模式查询Sql Server中testDB数据库中student表中的xh(学号)、xm(姓名)和xb(性别)三列的值,则可以建立如下的命令对象(sConn参见建立的连接sConn:

SqlCommand sCmd = new SqlCommand("SELECT xh,xm,xb FROM student",sConn);

亦可使用如下的形式:

SqlCommand sCmd = new SqlCommand();
        sCmd.CommandText = "SELECT xh,xm,xb FROM student";
       sCmd.Connection = sConn;  

命令对象常用的有三个方法:ExecuteReader(), ExecuteNonQuery()和ExecuteScalar()。ExecuteReader方法用于返回查询结果的全部数据。 ExecuteNonQuery方法用于返回所影响的行数,一般用于Insert、Update和Delete操作。ExecuteScalar方法返回 结果中的第一行第一列的值。

5、数据读取器DataReader

DataReader用于从返回来的数据区中读取数据。其根据使用的数据连接模式不同也有不同的形式:SqlDataReader对应着SqlClient模式,OleDbDataReader对应着OleDb模式,OdbcDataReader对应着Odbc模式。

数据读取器应与命令对象配合使用,下面接着4中的例子来写:

SqlDataReader sdr = null;
        sdr = sCmd.ExecuteReader();     //执行命令对象,并用sdr指向结果集的第一条记录。
        while(sdr.Read())   //每读取一条记录后,指向其下一条记录
       {
             Console.WriteLine("学号:{0},姓名:{1},性别:{2}",sdr["xh"],sdr["xm"],sdr["xb"]);   //或使用下面的格式
           // Console.WriteLine("学号:{0},姓名:{1},性别:{2}",sdr[0],sdr[1],sdr[2]);  
       } 
       sdr.Close();      //关闭读取器

6、数据集DataSet和数据适配器DataAdapter

一般数据集和数据适配器是密不可分的,下面先介绍数据适配器。

数据适配器可以容纳一组数据命令和一个数据库连接对象,这与Command对象不同, Command只有一个数据命令和一个数据库连接。数据适配器根据不同的连接模式也有不同的形式:SqlDataAdapter、 OleDbDataAdapter和OdbcDataAdapter。下面给出SqlClient模式下数据适配器的定义方式:

SqlDataAdapter sda = new SqlDataAdapter("SELECT xh,xm,xb FROM student",sConn);

第一个参数是用到的SQL语句,第二个参数是数据连接。也可以使用一个命令对象传递上面的信息。即:

SqlDataAdapter sda = new SqlDataAdapter(sCmd);

下面再介绍一下DataSet,DataSet是在内存中缓存的数据集,包括数据本身,还包括定义在数据上的约束和关系等信息。数据集中可以包含0个这样的数据对象。不管使用什么样的数据库连接模式,其只有唯一的形式。其定义方法如下:

DataSet ds = new DataSet();

定义完数据集后,就可以调用数据适配器的Fill方法来填充数据集:

sda.Fill(ds);

也可以在填充的同时,指定表名:

sda.Fill(ds,"Student");

可以使用下面的方法读取数据集中的数据信息:

int rowNum = ds.Tables["Student"].Rows.Count;     //获得数据集表student表中的行数

int columnNum = ds.Tables["Student"].Columns.Count; //获得数据集表student中的列数

for(int i = 0; i < rowNum; i ++)
        {
           for(int j = 0; j < columnNum; j ++)
              {
                    Console.Write(ds.Tables["student"].Columns[j].ColumnName+":"+ds.Tables["student"].Rows[i][j].ToString();
             }
             Console.WriteLine();

}

下面给出一个数据库操作的例子。假设在Sql Server中有一个数据库test,其存放着一个数据表名为student,其结构为student(xh,xm,xb,mz),下面使用SqlClient模式连接数据库:

/**************************************

* 

* 本程序演示数据库的操作

* 使用Sql Server2000数据库操作

* 

* ************************************/

using System;

//引入命名空间


using System.Data;

using System.Data.SqlClient;


class DbOper

{

     static void Main()

     {

         //定义连接字符串

          string connString;

         connString="server=.;uid=sa;pwd=;database=test;";

         //定义连接对象sConn

         SqlConnection sConn = new SqlConnection(connString);

         try

         {

              //打开连接

              sConn.Open();

         }

         catch(Exception ex)

         {

              //给出错误信息

              Console.WriteLine("连接错误:"+ex.Message);

         }

         //定义SQL查询语句

         string sql;

         sql = "select * from student";

         //定义命令对象sCmd

         SqlCommand sCmd = new SqlCommand(sql,sConn);


         //定义数据读取器sdr

         SqlDataReader sdr=null;


         //执行命令对象sCmd并赋值给sdr

         sdr = sCmd.ExecuteReader();


         //循环输出sdr中的内容

         Console.WriteLine("   学 号   姓名     性别民族");

         while(sdr.Read())

         {

              Console.WriteLine(sdr[0]+" "+sdr["xm"]+sdr["xb"]+" "+sdr["mz"]);

         }

         //关闭数据读取器

         sdr.Close();


         //关闭数据库连接

         sConn.Close();

     }

}

求C#语言开发数据库教程