gpt4 book ai didi

postgresql - 从 Asp.Net C# 应用程序执行 PostgreSQL 存储过程时出现 42809 错误

转载 作者:行者123 更新时间:2023-12-04 13:16:22 25 4
gpt4 key购买 nike

我在 ASP.NET 应用程序中使用 PostgreSQL pgadmin4 (4.16v)。我创建了一个如下定义的过程:

CREATE OR REPLACE PROCEDURE public.usp_bind(
)
LANGUAGE 'plpgsql'

AS $BODY$
BEGIN
select district_id,district_name from district_master order by district_name;
END;
$BODY$;

我从 asp.net 应用程序调用了上述过程,代码如下:

NpgsqlConnection conn = new NpgsqlConnection();
NpgsqlDataAdapter da = new NpgsqlDataAdapter();
NpgsqlCommand cmd = new NpgsqlCommand();
DataSet ds = new DataSet();
public string dbconstr = dbConnectstr.Connectionstring();

public DataSet getDatafunction(string procedure_, [Optional] string flag_)
{
using (conn = new NpgsqlConnection(dbconstr))
{
//conn.Open();
using (da = new NpgsqlDataAdapter())
{

da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.CommandText = "CALL usp_bind";
da.SelectCommand.Connection = conn;


using (ds = new DataSet())
{
da.Fill(ds);
}
}
//conn.Close();
}
return ds;
}

它给我一个错误,因为 - 42809: 'usp_bind' is a procedure.

我也可以使用 CALL 方法调用它,但没有用。从 ASP.NET 应用程序调用过程的确切方法是什么?

最佳答案

不要在您的命令上设置 CommandType.StoredProcedure

不幸的是,存储过程是新的,并且 CommandType.StoredProcedure 已经被用来调用函数,并且改变这将是一个重大的突破性变化。 p>

关于postgresql - 从 Asp.Net C# 应用程序执行 PostgreSQL 存储过程时出现 42809 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60000410/

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