在Visual Studio中,我有一个asp.net(vb.net)项目,使用连接到postgres数据库的sqldatasource组件。这工作正常,但现在我需要为我的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运算符不存在@字符变化“。
有没有办法在没有编程代码的情况下将sqldatasource与postgres sql参数一起使用?
Meanwile我或多或少地发现了解决方案,所以如果其他人可能感兴趣我在这里给它:在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根据需要显示所选数据。