暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Windows下C#通过SqlSugar连接GBase8s数据库

原创 努力努力再努力 2024-11-08
307

一、概述

本文以示例的形式介绍 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测试连接到数据库结果。

最后修改时间:2024-11-08 22:10:12
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论