首页 > 解决方案 > 带有 postgres 选择参数的 asp.net sqldatasource

问题描述

在 Visual Studio 中,我有一个使用连接到 postgres 数据库的 sqldatasource 组件的 asp.net (vb.net) 项目。这工作正常,但现在我需要为我的 select 语句提供一个参数,但我找不到解决方案:

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
ProviderName="Npgsql"
SelectCommand="SELECT column2 from myTable where column1 = :column1)">
 <SelectParameters>
  <asp:Parameter Name=":column1" Type="String"/>
 </SelectParameters>
</asp:SqlDataSource>

当我尝试更新方案时,我得到一个

错误 42601 >>:<< 处的语法错误

我也尝试使用参数@column1(而不是:column1,它适用于我的mssqlserver连接),但后来我得到了

错误 42883 运算符不存在@字符变化”。

有没有办法使用带有 postgres sql 参数的 sqldatasource 而不需要后面的编程代码?

标签: asp.netpostgresqlsqldatasource

解决方案


同时,我或多或少地偶然发现了解决方案,所以如果其他人可能感兴趣,我会在这里给出:在 SelectCommd 中,我使用“@column1”作为参数。在 SelectParamter 部分中,参数名称必须是“column1”(不带 @):

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
ProviderName="Npgsql"
SelectCommand="SELECT column2 from myTable where column1 = @column1)">
 <SelectParameters>
  <asp:Parameter Name="column1" Type="String"/>
 </SelectParameters>
</asp:SqlDataSource>

它仍然无法使用 sqldatasource 组件执行“更新方案”(仍然出现错误),但现在 select 语句在运行时工作正常,即基于 sqldatasource 的 gridview 根据需要显示所选数据。


推荐阅读