祥叔学编程

祥叔学编程
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

国货——达梦数据库及在.Net 下的增删改查

Posted on 2012-04-11 14:07  祥叔  阅读(13091)  评论(48编辑  收藏  举报

一,简介

 

偶然看到了国产数据库——达梦数据库。顿时起了兴趣,捣鼓了一番。

 

下面这段简介摘自百度百科

达梦数据库是武汉华工达梦数据库有限公司推出的具有完全自主知识产权的高性能数据库产品。它采用三权分立的安全管理机制,安全级别达到B1级,并在大数据量存储管理、并发控制、数据查询优化处理、事务处理、备份与恢复和支持SMP系统等诸多方面都有突破性进展和提高。更多介绍:http://baike.baidu.com/view/581717.htm

 

达梦数据库有免费版和收费版(感觉国人就是有点急功近利)。

免费版下载地址:http://www.dameng.com/dmweb/article.do?type=category&articleid=57021

Windouws版和Linux版。

 

二,安装

 

我这里选择Windows版下载,当前版本6.2UI还是做得很漂亮的。 

安装过程很简单,一路“下一步”就行了:

2.1) 选择语言版本

 

2.2) 选择验证Key文件,免费版的下载包里提供了验证文件。 

 

2.3)设置初始化参数 

 

 2.4)修改数据库口令(密码),当然也可以无视它。默认密码是: SYSDBA

 

 

三,使用

 

3.1) 打开管 “理工具Manager”登陆 

 

输入安装时设置的口令,如果安装时没有修改口令,则输入初试默认口令“SYSDBA 

3.2) 登陆进去后看到系统默认有两个数据库“SYSTEM”、“BOOKSHOP”。这里我自己新建了一个叫“Cnblogs”的数据库。新建很简单,和操作SQLServer差不多。 

 

 3.3) 点开“cnblogs”节点,会发现,它不像SQLServer那样,下面直接是“表”、“视图”等。

它下面是“模式”,一个数据库可以有多个模式,模式下面才会有“表”、“视图”等等。

 

 模式用来代表特定数据库中的一个对象集,在概念上可将其看作是包含表、视图、索引和权限定义的对象集合。一个模式只作用于一个数据库,不同的数据库可以有同名模式。

 我在模式“SYSDBA”下面建了个“Users”表。

3.4) 达梦SQL  

因为达梦数据库有一个“模式”的概念,因此它的查询语句和SQLServer 也有所不同,要在“表”前加上“模式”。如:

select  *  from  SYSDBA.Users

 当然你也可以不加,直接像在SQLServer 里那样,写成 

 

   select * from  Users 

这时它会默认使用SYSDBA模式。

 

四,使用C#对达梦数据库进行CRUD操作

 达梦数据库提供了很多驱动,包括.Net 。在达梦数据的安装目录找到 \dmdbms\bin\ DmProvider.dll 程序集,这就是.Net 操作达梦数据库的驱动程序。我们用VS建个Demo 引用这个dll。增删改查的演示代码如下: 

using Dm;

///
 <summary>
/// 获得数据库链接
/// </summary>
/// <returns></returns>
public DmConnection GetConn()
{
    string strconn = "server=localhost;database=Cnblogs;User Id=SYSDBA;PWD=SYSDBA";
    DmConnection conn = new DmConnection(strconn);
    conn.Open();
    return conn;
}

//插入数据
public void Insert()
{
    DmConnection conn = GetConn();
    string strCmd = "Insert into  SYSDBA.Users(Name,Sex,Age)values('xumingxiang','man',25)";
    DmCommand cmd = new DmCommand(strCmd, conn);
    int effect = cmd.ExecuteNonQuery();
    conn.Close();//关闭数据库链接
}

/// <summary>
/// 删除数据
/// </summary>
public void Update()
{
    DmConnection conn = GetConn();
    string strCmd = "update  SYSDBA.Users set Age=100 where Id=1";
    DmCommand cmd = new DmCommand(strCmd, conn);
    int effect = cmd.ExecuteNonQuery();
    conn.Close();
}

/// <summary>
/// 删除数据
/// </summary>
public void Delete()
{
    DmConnection conn = GetConn();
    string strCmd = "delete from  SYSDBA.Users  where Id=1";
    DmCommand cmd = new DmCommand(strCmd, conn);
    int effect = cmd.ExecuteNonQuery();
    conn.Close();
}

/// <summary>
/// 用ExecuteReader查询数据
/// </summary>
public void QueryByExecuteReader()
{
    DmConnection conn = GetConn();
    string strCmd = "select * from  SYSDBA.Users ";
    DmCommand cmd = new DmCommand(strCmd, conn);
    DmDataReader dr = cmd.ExecuteReader();

    int id;
    string name;
    string sex;
    int age;
    while (dr.Read())
    {
        id = dr.GetInt32(0);
        name = dr.GetString(1);
        sex = dr.GetString(2);
        age = dr.GetInt32(3);
    }
}


/// <summary>
///用DataAdapter 查询数据,返回DataSet
/// </summary>
public DataSet QueryByDataAdapter()
{
    DmConnection conn = GetConn();
    string strCmd = "select * from  SYSDBA.Users ";
    DmDataAdapter da = new DmDataAdapter(strCmd,conn);
    DataSet ds = new DataSet();
    da.Fill(ds);
    return ds;
}

在上面的代码中,我们可看到对达梦数据库进行增删改查和操作SQLServer 差不多。要说区别,那就是多个“模式”的概念。

 

由于只是兴趣使然,只是简单的尝尝鲜,我没有对其性能、负载等方面做测试,也没打算用它做实际项目。等以后有空了在继续捣鼓它吧。不说他好也不说他坏,在精神上支持一下国货吧!


原文地址:http://www.cnblogs.com/xumingxiang/archive/2012/04/11/2442271.html

作者 : 徐明祥
出处:http://www.cnblogs.com/xumingxiang 
版权:本文版权归作者和博客园共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任