2013-10-02 2 views
0

В настоящее время я работаю над POS-системой в качестве проекта для своих исследований. Мы создаем приложение в winforms VB с помощью visual studio 2012.MySQL Query - поиск с использованием подстановочных знаков спереди и сзади и входной параметр. Visual Studio 2012 - VB.NET

У меня установлен MySQL для Visual Studio и есть набор данных/соединение/набор данных, настроенный через панель источников данных в VS.

В настоящее время я пытаюсь выполнить запрос TableAdapter с помощью VS Query Builder, который ищет имя продукта, но используя стандартное WHERE (ProductName = @inputParamName), вам нужно 100% -ное совпадение в @inputParamName, чтобы он отображал соответствующие данные ,

Я пытался использовать WHERE (ProductName LIKE '%' + @inputParamName + '%'), однако он дает мне ошибку MySQL.

Если бы кто-нибудь мог мне помочь, был бы признателен.

Спасибо

ответ

0

ОК, я отредактировал свой ответ, чтобы использовать другой подход. Вы можете сделать следующее. Когда вы создаете SqlDataSource в VS, он добавляет SelectCommand в aspx. Установите команду ничего и добавить SelectParameter, как это:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand=""> 
    <SelectParameters> 
     <asp:Parameter DefaultValue="" Name="param1" Type="String" /> 
    </SelectParameters> 
    </asp:SqlDataSource> 

Теперь в коде позади, вы можете изменить SelectCommand и передать его параметров, как это:

  { 
     // Run this on a click or selected index change 
     string m_param = "2012"; //this would be something like Textbox1.Text 

     this.SqlDataSource1.SelectParameters[0].DefaultValue = m_param; 
     this.SqlDataSource1.SelectCommand = "SELECT ID, FILENAME FROM drmc.checksum WHERE FILENAME LIKE '%" + this.SqlDataSource1.SelectParameters[0].DefaultValue + "%'"; 

     } 

Вам нужно проверьте значение «Textbox1.Text» для SQL Injection. Regex хорош для этого.

+0

Привет, к сожалению, мой опыт работы с MySQL довольно ограничен. Поэтому маршрут хранимой процедуры кажется немного сложным. Я бы предпочел использовать T-SQL/MSSQL, так как у меня больше опыта с этим, но моя группа имеет только сервер MySQL в нашем распоряжении. Можете ли вы подробнее рассказать об ускорении с помощью \ пожалуйста? Спасибо за ваш ответ. –

+0

Благодарим вас за ваш пересмотренный ответ. Я до сих пор не отсортирован, но этот метод выглядит намного проще, и я его реализую, когда я перейду к поисковой функции. –