注册

dotnet驱动DM.DmProvider,不支持bool参数问题

彬彬 2025/07/21 221 5

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:7.0
【操作系统】:linux
【CPU】:未知
【问题描述】*:dotnet驱动DM.DmProvider,如果where条件中bool类型参数单独作为条件之一,会报错:查询使用值表达式作为过滤条件。
其他数据库的驱动如pg的都是没有问题的。
下面是示例代码:

class Program { static void Main() { string connectionString = "Server=127.0.0.1;Port=5236;User Id=SYSDBA;Password=SYSDBA;Database=MYDB;"; using (DmConnection connection = new DmConnection(connectionString)) { connection.Open(); string sql = "SELECT ID, NAME, AGE FROM USERS WHERE :p0 AND AGE > :p1";//注意这里的p0参数单独一个条件就报错,当然我改成:p0=1可以解决问题,但是efcore生成的数据不带=1的 using (DmCommand command = new DmCommand(sql, connection)) { command.Parameters.Add(new DmParameter(":p0", true));//这个参数单独作为条件之一会报错 command.Parameters.Add(new DmParameter(":p1", 18)); using (DmDataReader reader = command.ExecuteReader())//ExecuteReader这个方法报错了 { while (reader.Read()) { int id = reader.GetInt32(0); string name = reader.GetString(1); int age = reader.GetInt32(2); Console.WriteLine($"{id}\t{name}\t{age}"); } } } } } }
回答 0
暂无回答
扫一扫
联系客服