asp.net sqldatasource с параметрами выбора postgres - PullRequest
0 голосов
/ 18 марта 2019

В Visual Studio у меня есть проект asp.net (vb.net), использующий компонент sqldatasource, подключающийся к базе данных postgres.Это работает нормально, но теперь мне нужно предоставить параметр для моего оператора выбора, и я не нашел решения:

<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 Синтаксическая ошибка в >>: << </p>

Я также пытался использовать параметр @ column1 (вместо: column1, который работает для моих соединений mssqlserver), но затем я получаю

Оператор 42883 ошибки не существует @ символ меняется ".

Есть ли способ использовать источник sqldatasource с параметрами sql postgres без программного кода?

1 Ответ

0 голосов
/ 18 марта 2019

Между тем я нашел более или менее случайное решение, поэтому я дам его здесь, если кому-то еще может быть интересно: В 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 отображает выбранные данные по мере необходимости.

...