GBase 8s
适配迁移
问答

.net framework 4.8 使用GeneralData.GBase8s.DataProvider.dll 连接GBase8sV8.8数据库报错

发表于2026-01-03 09:34:20175次浏览7个评论

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

【GBase版本】:GBase8sV8.8_3.6.3_3X2_x86_64(开发版)

【操作系统】:window11

【CPU】:

【问题描述】*:代码内配置好后connection.Open();报错:ERROR [HY000] [GBasedbt][GBasedbt ODBC Driver][GBasedbt]Unspecified System Error = -23101. 具体测试代码如下

        public static GbsConnection GetGbsConnection(string dbName)
       {
           GbsConnectionStringBuilder builder = new GbsConnectionStringBuilder();


           // 设置连接参数
           builder.Host = "192.168.2.190";       // 数据库服务器IP
           builder.Service = "9088";  // 端口号
           builder.Protocol = "onsoctcp";
           builder.Server = "gbase01";            // 数据库服务名称
           builder.Database = dbName;          // 数据库名称
           builder.UID = "gbasedbt";             // 用户名
           builder.Pwd = "GBase@123";               // 密码
           builder.DbLocale = "zh_CN.utf8";     // 数据库字符集
           builder.ClientLocale = "zh_CN.utf8";  // 客户端字符集
                                                 // 构建连接字符串
           var connstrTest = $"{builder.ConnectionString};";
           var conn = new GbsConnection(connstrTest);
           return conn;
       }
       public static bool HasDb()
       {
           using (var connection = GetGbsConnection("sysmaster"))
           {
               try
               {
                   connection.Open();
                   Console.WriteLine("连接成功!");
                   var cmd = connection.CreateCommand();
                   cmd.CommandText = "select name FROM sysdbspartn";
                   using (var reader = cmd.ExecuteReader())
                   {
                       if (reader.HasRows)
                       {
                           while (reader.Read())
                           {
                               Console.WriteLine(reader.GetString(0));
                               if (reader.GetString(0).Trim() == “testdb”)
                               {
                                   return true;
                               }

                           }
                       }
                       else
                       {
                           Console.WriteLine("查询结果为空");
                       }
                   }
                   return false;

               }
               catch (Exception ex)
               {
                   Console.WriteLine($"连接失败:{ex.Message}");
               }
           }
           return false;
       }

评论

登录后才可以发表评论
用户头像
GBase用户28017发表于 7个月前
ODBC数据源配置没有啊。
用户头像
琳大大发表于 7个月前
.net framework 4.8需要走csdk里的驱动,\bin\netf40下有GBS.Data.GBasedbt.dll,用这个
最佳回答
用户头像
路路路发表于 7个月前
@琳大大:赞~
用户头像
GBase用户28017发表于 6个月前
解决了吗?
用户头像
路路路发表于 5个月前
看您一直没有回复,这个问题我先关闭了,如果还有其它问题,欢迎您再发问答贴
GBase用户47954发表于 2个月前
感谢作者的精彩分享!
GBase用户51935发表于 2个月前
围观了。