一、简介
偶然看到了国产数据库——达梦数据库。顿时起了兴趣,捣鼓了一番。
下面这段简介摘自百度百科
达梦数据库是武汉华工达梦数据库有限公司推出的具有完全自主知识产权的高性能数据库产品。它采用“三权分立”的安全管理机制,安全级别达到B1级,并在大数据量存储管理、并发控制、数据查询优化处理、事务处理、备份与恢复和支持SMP系统等诸多方面都有突破性进展和提高。更多介绍:http://baike.baidu.com/view/581717.htm
达梦数据库有免费版和收费版(感觉国人就是有点急功近利)。
免费版下载地址:http://www.dameng.com/dmweb/article.do?type=category&articleid=57021
有Windouws版和Linux版。
二、安装
我这里选择Windows版下载,当前版本6.2,UI还是做得很漂亮的。
安装过程很简单,一路“下一步”就行了:
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
【编辑推荐】