gpt4 book ai didi

sql - Dapper:调用 postgres 函数时,字符串作为文本传递

转载 作者:行者123 更新时间:2023-11-29 14:37:42 25 4
gpt4 key购买 nike

在Postgres中调用DB函数时,String的类型变为textDateTime的类型变为timestamp。有什么办法可以确保这种情况不会发生吗?

设置:一个数据库函数:

foo(v_from character varying, v_to character varying, v_date date)

Dapper 代码:

public static decimal GetValue(DateTime vdate, string cur) {
string sql = @"SELECT _public.foo(@vFrom, @vTo, @vDate)";
var data = connection.QueryFirstOrDefault<decimal>(
sql,
new
{
vFrom = cur,
vTo = cur,
vDate = valdate,
}
);
}

我收到以下错误:

Npgsql.PostgresException : 42883: Function _public.foo(text, text, timestamp without time zone) does not exist

字符串以某种方式转换为文本而不是字符 varchar。 DateTime 与时间戳的类似情况。

尝试了 DynamicParameters.Add() 的变体,但结果仍然相同。

最佳答案

试试这个?

public static decimal GetValue(DateTime vdate, string cur) {
string sql = @"SELECT _public.foo(@vFrom::character varying, @vTo::character varying, @vDate::date)";
var data = connection.QueryFirstOrDefault<decimal>(
sql,
new
{
vFrom = cur,
vTo = cur,
vDate = valdate,
}
);
}

关于sql - Dapper:调用 postgres 函数时,字符串作为文本传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41979329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com