技术开发 频道

SQL Server、Oracle、DB2一决高下

  同时,SQL Server Express还完全支持LINQ to SQL以及ADO.NET Entity Framework

  Oracle Express

  接下来我们来看一下Oracle Express的情况,目前Oracle提供的最新版本是11g Express,可以通过下面的地址下载

  http://www.oracle.com/technetwork/database/express-edition/downloads/index.html

  我下载了两个安装程序,如下图

  OracleXE112_WIN32.zip是数据库主程序安装文件

  ODTWithODAC112021.zip是所谓的开发工具包,也就是给Visual Studio配套的一些程序集和脚本等

  安装好之后,大致有如下的几个服务

  如果安装了ODT,就可以很方便地在Visual Studio中连接到Oracle数据库,进行操作

  要通过编程访问Oracle数据库,也很简单,只要预先添加一个引用

  需要注意的是,这个Assembly并没有安装在GAC,所以你可能需要通过“浏览”这个选项卡,直接找到它,而不是在".NET"这个选项卡里面去找。

  具体的访问代码其实很类似,例如 

using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Text;

  using Oracle.DataAccess.Client;

  namespace Sample

  {

  class Program

  {

  static void Main(
string[] args)

  {

  var conn
= new OracleConnection("data source=localhost;user id=ares;password=password");

  var cmd
= conn.CreateCommand();

  cmd.CommandText
= "SELECT * FROM SYS.Employees";

  conn.Open();

  var reader
= cmd.ExecuteReader();

  
while (reader.Read())

  {

  Console.WriteLine(reader[
0].ToString());

  }

  }

  }

  }

  IBM db2 Express-C

  IBM目前所提供的db2 Express 的名称叫Express-C, 版本号为9.7.4,可以通过下面的地址下载到

  http://www.ibm.com/developerworks/cn/downloads/im/udbexp/

  我下载了几个组件,如下图所示

  db2exec_975_win_x86.exe是db2 express-C的安装程序

  db2exec_vsai_975_win_x86.exe是给visual studio的一个插件

  ibm_data_studio_standalone_win_v31.zip是db2 express的一个管理工具

  安装完之后,我大致看了一下有关的服务,有如下几个

  在Visual Studio中,同样也可以方便地进行连接,和管理。这得益于Visual Studio所提供的良好的扩展机制

  如果安装了那个管理工具,则有如下的画面

  如果需要编程访问DB2 Express-C,则可以添加如下的引用

  并且使用诸如下面这样的代码访问即可

using System;

  using System.Collections.Generic;

  using System.Linq;

  using System.Text;

  using IBM.Data.DB2;

  namespace Sample

  {

  class Program

  {

  static void Main(
string[] args)

  {

  
//创建数据库连接

  var conn
= new DB2Connection("Database=SAMPLE;User ID=administrator;Server=localhost;password=password01!");

  
//创建命令

  var cmd
= conn.CreateCommand();

  cmd.CommandText
= "SELECT * FROM Employee";

  
//打开连接

  conn.Open();

  
//读取数据

  var reader
= cmd.ExecuteReader();

  
while (reader.Read())

  {

  Console.WriteLine(reader[
0].ToString());

  }

  
//关闭连接

  conn.Close();

  }

  }

  }

 

  我们会发现,这与之前的SQL Server Express和Oracle中访问数据库的方式,何其相似。

  总结

  从上面的例子和截图可以看出来,这三个产品,在我们作为开发人员具体来使用的时候,其实差别很小的。这也是一个好的框架所带来的优势。.NET支持灵活的数据访问框架,由此,我们可以专注于业务本身,而不需要为不同的数据源编写不同的代码。事实上,完全可以做到,一份代码复用于不同的数据源。而作为一个Express的产品,他们从能力上,没有本质上的差别。

  针对他们的一些小的区别,我整理一个表格如下

0
相关文章