人大金仓数据库KingbaseES ODBC使用其它语言连接数据库

关键字:人大金仓、KingbaseES、c#、vb

  1. 概述

开放式数据库连接(ODBC)是一种广泛接受的应用程序编程接口(API),适用于数据库访问。它基于Call-Level接口(CLI)开放式组和ISO/IEC的数据库API规范,并使用结构化查询语言(SQL)作为其数据库访问语言。上述特性,使得ODBC在被众多开发语言封装调用,如:PYTHON、C#、VB、DEPHINE、QT、PB等。对于在Windows操作系统中,默认为已经注册了KingbaseES的ODBC的驱动并且已经设置了正确的数据源。而对于在Linux操作系统中,默认已经配置成功odbc.ini与odbcinst.ini文件。

  1. C#

对于使用C#调用ODBC驱动的过程中,开发平台选用visual studio 2013。

    1. 使用图形化界面访问数据库

在VS中,可以通过“服务器资源管理器”,具体配置步骤如下。

  1. 打开 “服务器资源管理器”->“数据连接”->“添加连接”

  1. 选择数据源,“Microsoft ODBC 数据源”

  1. 填写配置参数

  1. 操作数据库,找到所需要操作的表后“新建查询”即可

若是在第3步中出现如下错误:

出现该错误的可能情况为,所安装的ODBC驱动的架构与操作系统的架构不匹配,如操作系统为x64位的Windows,而安装的ODBC的驱动为32位,此时便会出现上述错误。

解决办法为卸载错误安装的ODBC驱动后重新安装。

    1. 通过应用程序访问

在C#中调用ODBC会使用到的命名空间“System.Data.Odbc”,在该空间中提供了操作数据库的类如:OdbcConnection(用于与数据库端建立连接)、OdbcCommand(对数据源要执行的SQL语句或存储过程)、OdbcDataAdapter(用于填充DataSet和更新数据源的一组数据命令和一个数据连接)以及OdbcDataReader(从数据源中获取数据)。下述示例中将使用上述类操作数据库,首先会创建一个表“a1”,而后向表中插入一条数据,并查询表中数据,最后再将表删除。

代码示例如下:

//引入命名空间

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Data.Odbc;

using System.Data;

namespace net_use_odbc

{

class Program

{

//构造连接字符串

public static string connString1 = "Dsn=kingbase;Uid=system;Pwd=123";

//创建表并插入数据

static void Create_and_Insert()

{

using (OdbcConnection con = new OdbcConnection(connString1))

{

con.Open();

using (OdbcCommand cmd = new OdbcCommand("create table a1(id int, data text)", con))

{

cmd.ExecuteNonQuery();

cmd.CommandText = "insert into a1 values(1, 'testdata')";

cmd.ExecuteNonQuery();

}

con.Close();

}

}

//查询表中的数据

static DataTable SqlExeQuery_datatable()

{

using (OdbcConnection con = new OdbcConnection(connString1))

{

using (OdbcCommand cmd = new OdbcCommand("select * from a1", con))

{

using (OdbcDataAdapter da = new OdbcDataAdapter(cmd))

{

DataTable dt = new DataTable();

con.Open();

da.Fill(dt);

return dt;

}

}

con.Close();

} }

//显示查询得到的数据

static void Print_datatable()

{

DataTable dt = SqlExeQuery_datatable();

String strColumn = "";

String strData = "";

foreach (DataColumn column in dt.Columns)

{

strColumn += column.ColumnName;

strColumn += " ";

}

Console.WriteLine(strColumn);

foreach (DataRow index in dt.Rows)

{

strData = "";

foreach (DataColumn column in dt.Columns)

{

strData += index[column.ColumnName];

strData += " ";

}

Console.WriteLine(strData);

}}

//删除创建的表

static void Drop_datatable()

{

using (OdbcConnection con = new OdbcConnection(connString1))

{

con.Open();

using (OdbcCommand cmd = new OdbcCommand("drop table a1", con))

{

cmd.ExecuteNonQuery();

}

con.Close();

}

}

static void Main(string[] args)

{

Create_and_Insert();

Print_datatable();

Console.ReadLine();

Drop_datatable();

}

}

}

  1. VB
    1. 工程创建

选用visual studio 2013作为开发平台,在VB中调用ODBC驱动操作数据库需要使用到ADODB的扩展,扩展的添加方式如下:

在项目上右击,找到“添加-引用”后(如下), 即可打开“应用管理器”。

下图中为打开的“应用管理器”选择“扩展”选项后便可看到“ADODB”,选择任意一个后点击“确定”按钮即可。

ADODB的扩展添加完成后便可开始进行应用程序的开发,ADO中共有7个对象,连接对象(Connection)、命令对象(Command)、记录集对象(Recordset)、字段对象(Field)、参数对象(Parameter)、错误对象(Error)以及属性对象(Property)。下述示例便是通过使用这7个对象进行数据库的操作。示例在创建表后向其插入一条数据,并对表中的数据进行查询与显示,之后对更新表中数据并再一次的查询与显示,在删除表后断开连接并释放空间。

    1. 示例:

Dim cn As New ADODB.Connection

Dim rs As New ADODB.Recordset

Dim cmd As New ADODB.Command

'建立与数据库的连接

cn.Open("DSN=kingbase8;" & _

"UID=hwj;" & _

"PWD=123;" & _

"Database=hwjbase")

cn.Execute("DROP TABLE if exists a1;")

'创建表“a1”

cn.Execute("create table a1(id int, data text);")

'向表中插入数据

cn.Execute("insert into a1 values(1,'datatest');")

'查询并获取结果集

rs.Open("SELECT id, data FROM a1;", cn)

'显示结果集

MsgBox(rs.Fields("id").Value & vbTab & rs.Fields("data").Value)

'更新数据

cmd.ActiveConnection = cn

cmd.CommandText = "update a1 set data='testdata' where id = 1"

cmd.Execute()

'重新查询结果并显示

rs.Requery()

MsgBox(rs.Fields("id").Value & vbTab & rs.Fields("data").Value)

'删除表

cn.Execute("drop table a1;")

'关闭并清空内存

rs.Close()

rs = Nothing

cn.Close()

cn = Nothing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值