为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8
【操作系统】:Win10
【CPU】:4
【问题描述】*:varchar(36) 出来的字符串自带横杠-,如何去掉
以下代码结果:
CHAR(36)类型的列值为 e000c66a31c841ddb1bf28bb898bb6ff,但是查询出来的值为:e000c66a-31c8-41dd-b1bf-28bb898bb6ff end..
var s_connectionString = "Server=10.0.25.1;PORT=5236;USER=sa;PASSWORD=123456!@#";
var sql = "select convert(varchar(36),'e000c66a31c841ddb1bf28bb898bb6ff') as result;";
using (var connection = new DmConnection(s_connectionString))
{
connection.Open();
DmCommand cmd = new DmCommand();
cmd.Connection = connection;
cmd.CommandText = sql;
var guidResult = cmd.ExecuteScalar();
if (guidResult != null)
{
Console.WriteLine($"CHAR(36)类型的列值为 e000c66a31c841ddb1bf28bb898bb6ff,但是查询出来的值为:{guidResult?.ToString()}");
}
}
达梦驱动版本:
开发语言:.NET Framework 4.8 C#
https://eco.dameng.com/document/dm/zh-cn/pm/net-rogramming-guide.html#5.2.1%20DmConnection%20对象
varchar36ToGuid 按照官网说明配置此参数,报错无此参数,看代码是DMoption 75个参数中没有此参数
DM7 的DmProvider 没有这个报错
我也遇到这个问题了,下载DM8,win64最新安装包,里面DmProvider.dll中没有varchar36toguid这个参数,连接串中加上varchar36toguid=false会报错
varchar36toguid does not exist
在数据库中直接运行SQL,如果没有问题,建议更换驱动
配置连接字符串 关键字
varchar36ToGuid 表示是否将数据库 varchar(36)列类型返回.net Guid 类型。TRUE 表示返回.net Guid 类型;FALSE 表示返回.net string 类型;缺省为 TRUE