我在 asp.net C# 中有一个数据表。我想将该数据表作为表参数传递给 PostgreSQL 函数。这怎么可能?
下面的示例是相同的,但它在 SQL Server 中。我需要同样的东西,但问题是我有 PostgreSQL 作为后端,而不是 SQL Server。
介绍
SQL Server 存储过程支持 System.Data.DataTable 作为参数。我们可以使用 ADO.Net 以与使用 System.Data.SqlParameter 类相同的方式将 DataTable 传递给存储过程,但需要对数据类型进行一些更改。通常我们为varchar、nvarchar、int 等普通参数提供SqlParameter 的DbType,如下面的代码所示。
Run Code Online (Sandbox Code Playgroud)SqlParameter sqlParam= new SqlParameter(); sqlParam.ParameterName = "@StudentName"; sqlParam.DbType = DbType.String; sqlParam.Value = StudentName;但是在 Table 参数的情况下,我们不需要提供 DbType作为参数数据类型。我们需要提供SqlType而不是 DbType。
例子
Run Code Online (Sandbox Code Playgroud)SqlParameter Parameter = new SqlParameter; Parameter.ParameterName = "@PhoneBook"; Parameter.SqlDbType = SqlDbType.Structured; Parameter.Value = PhoneTable;下面的示例接收电话簿列表并使用 ADO.Net 将它们存储在数据库中。该示例从列表中检索电话簿详细信息并将它们存储到 DataTable 中,并将该表作为参数传递给名为 NewPhoneBook 的存储过程。
Run Code Online (Sandbox Code Playgroud)//Phone book list List<PhoneBook> PhoneBooks …