一、概述
本文以示例的形式介绍 Windows10下C#通过SqlSugar的方式操作GBase 8s 数据库的方法,仅保证使用相同环境下的测试能通过,不同的环境下仅供参考。
示例使用的数据库版本为GBase8sV8.8_TL_3.5.1_x86_64,CSDK的版本为 clientsdk_3.5.1_1_4afd74_WIN2003_x86_64(Windows)。
示例使用的数据库服务器信息如下:
表 1 示例使用的数据库信息
序号 | 参数名称 | 示例参数值 | 说明信息 |
1 | 主机名称 | 192.168.137.66 | 数据库服务器的主机名称或IP地址 |
2 | 端口号 | 6666 | 数据库服务器使用的端口号 |
3 | 数据库服务名称 | yangzai | 数据库服务名称(DBSERVERNAME) |
4 | 数据库名称 | testdb | 数据库名称(DBNAME) |
5 | 数据库字符集 | zh_CN.utf8 | 数据库字符集(DB_LOCALE) |
6 | 客户端字符集 | zh_CN.utf8 | 客户端字符集(CLIENT_LOCALE) |
7 | GLU支持 | 1 | GLU支持(GL_USEGLU) |
数据库及CSDK的下载地址:
https://www.gbase.cn/download/gbase-8s-1?category=INSTALL_PACKAGE
二、Windows下的CSDK安装及连接配置
1、安装CSDK
CSDK需要使用管理员权限进行安装。解压CSDK的安装包,以管理员身份运行installclientsdk.exe开始安装。
安装介绍协议页面,需要将滚动条拉到最下面,才可以点击接受协议的单选框。
设置安装路径,这里我使用 C:\Program Files\GBase Client-SDK 目录。
安装的功能浏览,CSDK 默认安装的组件包括:OLEDB 运行环境、C++接口、ESQL\C、.NET驱动、客户端程序 LIBDMI、ODBC 驱动、通用数据库工具和 GLS。
安装组件预览,执行安装。
至此,Windows版的CSDK安装完毕!
2、配置CSDK
安装完成后,需要对客户端连接进行设置。在开始菜单里找到 GBase Client-SDK 4.10(64-bit) 目录,使用 管理员权限运行 打开 Setnet32 程序。
在服务器信息(Server Information)选项卡中设置数据库服务器信息:
Server Information选项卡设置项说明:
设置项 | 说明 |
GBase 8s Server | 需要连接的数据库实例名称 |
HostName | 数据库ip地址 |
Protocolname | 连接方式 |
Service Name | 端口号 |
在主机信息(Host Information)选项卡中设置主机信息:
Host Information选项卡设置项说明:
设置项 | 说明 |
Current Host | 选择刚才设定的HostName |
User Name | 用户名 |
Password Option | 密码选项 |
Password | 密码 |
三、C#操作数据库
这里我使用的是 Visual Studio 2022 社区版开发工具。
1、创建并配置项目
打开Visual Studio 2022,创建新项目,选择控制台应用,点击下一步。
创建控制台应用程序,指定项目名称为 SqlSugarGBase,位置等,点击下一步。
框架信息选择 .NET Core 6.0,点击创建。
2、添加相关依赖包
点击菜单栏中的【工具】,选择【NuGet 包管理器】下面的【管理解决方案的NuGet程序包】,弹出界面如下图所示:
接着,我们搜索以下2个包进行安装:
- SqlSugarCore(5.1.4.169版本)
- SqlSugar.GBaseCore(5.1.4.169版本)
安装完毕后如下图所示:
3、C#代码示例
using SqlSugar;
namespace SqlSugarGBase
{
class Program
{
static void Main()
{
// 配置数据库连接
var db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "Host=192.168.137.66;Service=6666;Server=server;Database=testdb;Protocol=onsoctcp;Uid=gbasedbt;Pwd=111111;",
DbType = DbType.GBase,
IsAutoCloseConnection = true
});
// 自动创建表
db.CodeFirst.InitTables(typeof(User));
// 测试连接
try
{
var result = db.Ado.GetScalar("SELECT COUNT(*) FROM dual");
Console.WriteLine($"Row count: {result}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
// 插入3条数据
InsertData(db);
InsertData(db);
InsertData(db);
// 更新数据
UpdateData(db);
// 删除数据
DeleteData(db);
// 查询数据
QueryData(db);
}
static void InsertData(SqlSugarClient db)
{
var user = new User{Name = "John Doe", Age = 30 };
db.Insertable(user).ExecuteCommand();
Console.WriteLine("Data inserted successfully.");
}
static void UpdateData(SqlSugarClient db)
{
var user = db.Queryable<User>().First(u => u.Id == 1);
user.Age = 31;
db.Updateable(user).ExecuteCommand();
Console.WriteLine("Data updated successfully.");
}
static void DeleteData(SqlSugarClient db)
{
db.Deleteable<User>(1).ExecuteCommand();
Console.WriteLine("Data deleted successfully.");
}
static void QueryData(SqlSugarClient db)
{
var users = db.Queryable<User>().ToList();
foreach (var user in users)
{
Console.WriteLine($"Id: {user.Id}, Name: {user.Name}, Age: {user.Age}");
}
}
}
public class User
{
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
[SugarColumn(ColumnName = "Name", IsNullable = false)]
public string Name { get; set; }
[SugarColumn(ColumnName = "Age", IsNullable = false)]
public int Age { get; set; }
}
} 4、程序运行结果
运行Program.cs程序代码,执行Debug测试连接到数据库结果。




