C#以及数据库访问技术总结(十八)

ADO.NET 代码综合示范

    前面早已介绍过OLE DB.NET和SQL
Server.NET数据提供者可以据此来连续不同之数据源。

  以下代码不仅综合示范了使ADO.NET的就有限种植多少提供者访问数据库的貌似步骤,而且说明了下不同门类之ADO.NET组件集合访问数据库的相似步骤。

  可以经过代码进一步询问这有限栽多少提供者访问方式的异同之处。

使用OLE DB.NET  Provider

OLE DB的数据提供者可以访问Access和SQL等数据库,代码如下:
//设置连接字符串
 string dbname=@" user.mdb";
 string db=Server.MapPath(dbPath);
 string connectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +db;
 //设置SQL语句
 string strSQL=" select  UserId, UserName from User";
//根据连接字符串,创建连接对象
OleDbConnection conn=new OleDbConnection(connectionString);
//根据连接对象和SQL语句,创建DataAdapter对象
OleDbDataAdapter  da=new OleDbDataAdapter(strSQL, conn);
//创建OleDbCommandBuilder, 用来对DataAdapter更好地操作
OleDbCommandBuilder  cb=new OleDbCommandBuilder(da);

 

   上述代码演示了从根据连续字符串建立连接对象,到创建DataAdpate对象填充DataSet,再届利用DataSet对象提交数据更新与同DataGrid绑定的貌似经过。

     
上述代码也演示了使用Connection、DataAdapter和DataSet访问数据库的形似流程。

  ADO.NET采用离线的法子访数据库,所以下DataSet从数据库获得数据后底操作数据的历程被,不必保持同数据库的总是,直到于数据库提交更新数据时,才需要连上数据库。这种做法顺应为海量数据更新的情形。

   
 而在上述代码里,因为数量操作过程比较简单,所以直到数据更新提交完才断开连接,也就是说,并无利用“离线”的数据库连接访问方式。

  不应用“离线”方式的说辞是:在数据库访问操作着,频繁连接和断开数据源也亟需消耗一定的系统资源,如果是代价而于保全差日的数量连接所需要的代价十分,那么宁可选择“一直在线”的连续方式。

使用SQL Server .NET  Provider

  

  以下的代码演示了如何使用SQLServer的.NETProvider来连接和访问数据。
//连接字符串
string connectionString="server=local;database=Northwind;user=sa;pwd=;";
//建立连接
Sqlconnection =new SqlConnection(connectionString);
//SQL语句
string strSql= "select UserID, UserName from User";
//根据连接对象和SQL语句创建SqlCommand对象
SqlCommand cmd=new SqlCommand(strSql, conn);
conn.Open();
//使用Command对象创建SqlDataReader对象
SqlDataReader  reader=cmd.ExecuteReader();
//使用DataReader对象填充DataGrid 控件
DataGrid_User.DataSource=reader;
DataGrid_User.DataBind();
//关闭连接
conn.Close();
   上述代码也演示了使用Connection、Command和DataReader对象访问数据库的一般方式。

 

数据库访问综述

   
前面讲述了于是少种植不同的多寡提供者(Provider)访问连接数据库的不二法门,如果数据源是SQL
Server,则运用SQL
Server的Provider;如果数据源是ODBC或是其他类别的数据库,则好选用OLE
DB的Provider。

    前面还讲述了使用Connection+Command+DataReader对象以及下Connection+
DataAdapter+DataSet对象的数据库访问方式。

    根据DataReader的特征,以Connection+Command+DataReader方式访问数据库的用状况有:

  • 做客数只是用于展示,而休改动。
  • 只是针对一个数据源进行操作,或是对单表进行操作。
  • 于数据只有望于后挨家挨户访问,而休开展双重遍历。
  • 做客数据量小,不需以内存中大量囤积数据。
  • 消看的结果集太好,不克一次性地布满放入内存,此时吗会动用DataReader来逐次访问。

    而DataSet支持离线的访问方式,可以生出以下的动:

  • 一致业务逻辑需要看多个数据源,比如以如果向SQL
    Server和Oracle数据库中求数据。
  • 是因为DataSet可以蕴涵多个DataTable,如果要拜访的数量对象来多只说明,可用DataSet的Table来分别存储管理。
  • 如看操作的数据量比较老,利用DataSet的离线访问机制可以减轻对数据库负载的下压力。

DataGrid控件与数据库访问技术

   
在实际的采取项目被,通常要拿用ADO.NET组件获得的数码信息展示在界面上,供用户浏览或修改。

  可以由此使用.NET的DataGrid控件实现这种效益。

DataGrid控件与数据绑定

    DataGrid控件的要害目的是促成“数据绑定”(Data
Binding),即把DataGrid控件上显示的数码以及后台数据库的数额绑定在联合,同步地联合转。

此外,DataGrid控件以表的样式显得了查询及之数结果集,默认的拜会方式是只有念而未克改,通过安装,可以实现记录的改及去功能。

DataGrid代码示例

    通过以下的手续,能以数据库里的数量动态绑定到DataGrid对象里并展示。

   
(1)在D盘下树立一个Access类型的数据库,命名为Student.mdb。在里面新打平摆放Studentlnfo的阐明,其中的字段如表所示。 

字    段

中文描述

数据类型

备    注

SID

学号

文本

主键

SName

姓名

文本

  一 

Sex

性别

文本

  一 

 

 

 

 

 

 

只顾:本书表中“一”表示毫不设置相关信息。

    完成后朝着内插入一些记下,如(001,Tom,Male)。

    (2)打开Visual
Studio环境后,选择“文件”|“新建”|“新建网站”命令,在弹出的新建网站”对话框中挑选“ASP.NET项目”,输入网站名testDataGrid和路径CAroot~DataGrid,登录模块所有代码和布置文件均位于这项目下。

   
(3)在并开发条件受到之“解决方案资源管理器”里,选中项目,右击,在弹出的很快菜单中选择“添加新项”命令,新建一个Web配置文件,命名也Web.config。该配置文件根本用来管理登录模块的有些全局性数据。

    其中,在配备文件里安数据库的连续性,使用OleDB的Data
Provider,连接受Access数据源上,代码如下。

  

<configuration>
  <appSettings>
<add key="connStr" value="Porvider=Microsoft.Jet.OleDB.4.0; Data Source=D:\login.mdb "></add>
  </appSettings>
<connectionStrings />

 

 
 (4)在合龙开发条件中之“解决方案资源管理器”里,选中项目,右击,在弹出的全速菜单中选择“添加新项”命令,新建一个Web窗体,命名为showDataGrid.aspx。

   
(5)打开“工具箱”的“Web窗体”,从中拖曳一个DataGrid控件到页面及,从DataGrid的属性栏中,可以看到该DataGrid对象被DataGrid1。

   
选中DataGridView控件,右击,在弹出的速菜单中选择”属性”命令,在属于性栏的Columns中单击“…”按钮,在弹出的“编辑列”对话框中,通过“添加”命令,依次向DataGridView控件里增长“学号”、“姓名”和“性别”3列,并将每列的DataPropertyName设置成该列对应之数据库字段,用于数据绑定。具体装如表所示。

数据列名

DataPropertyName

学号

SID

姓名

SName

性别

Sex

 

 

 

 

 

 

(6)双击窗体的空白处,进入相应的逻辑代码文件showDataGrid.aspx.cs。

  于该公文之头,添加数据库访问引用的命名空间语句:    

  using System.Data.SqlClient;

 

  并以class的始加上连接数据库的字符串定义:     

Private static string strConnect =System.Configuration.ConfigurationManager.AppSettings["connstr"];

 

  由于下的凡DataProvider,所以ADO.NET组件的靶子都以OleDb开头。

    上述代码的重中之重业务逻辑是:

   
(1)根据连年字符串,创建数据库连接对象,并冲连续对象创建OLeDbCommand对象。

    (2)根据SQL语句,查询所有学员的音讯,以SID的/顷序排列。

   
(3)使用OleDbDataApapter对象,将查询结果填充到DataSet中之。均Dataset数据表里。

    (4)将DataGrid的数据源设置成。均Dataset数据表,实现数据绑定。

   
这样,当打开这个页面时,DataGrid就能与Access数据库绑定,显示数据库里的学童信息。

相关文章