0

我目前正在研究 POS 系统作为我的学习项目。我们正在使用 Visual Studio 2012 在 VB winforms 中构建应用程序。

我安装了 MySQL for Visual Studio,并通过 VS 中的数据源面板设置了数据源/连接/数据集。

我目前正在尝试使用搜索产品名称的 VS Query Builder 进行 TableAdapter 查询,但是使用标准 WHERE (ProductName = @inputParamName) 您需要在 @inputParamName 中进行 100% 匹配才能显示相应的数据。

我试过使用 WHERE (ProductName LIKE '%' + @inputParamName + '%') 但是它给了我一个 MySQL 错误。

如果有人可以帮助我,将不胜感激。

谢谢

4

1 回答 1

0

好的,我编辑了我的答案以使用不同的方法。您可以执行以下操作。当您在 VS 中创建 SqlDataSource 时,它​​会在 aspx 中添加 SelectCommand。将命令设置为空并添加一个 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 + "%'";

         } 

您将需要针对 SQL 注入测试“Textbox1.Text”值。正则表达式对此有好处。

于 2013-10-02T07:04:07.220 回答