OracleC#以及数据库访问技术总括(十八)

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+
Data艾达pter+DataSet对象的数据库访问形式。

    依照Data里德r的性状,以Connection+Command+DataReader情势访问数据库的运境况有:

  • 做客数只有用于体现,而休改动。
  • 只针对一个数据源举行操作,或是对单表举行操作。
  • 于数据只是愿意为后相继访问,而不举办双重遍历。
  • 拜数据量小,不待以内存中大量仓储数据。
  • 亟待拜访的结果集太可怜,不可知五次性地全体放入内存,此时吗能利用Data里德(Reade)r来逐次访问。

    而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,汤姆,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数据库绑定,突显数据库里的学习者音信。

相关文章