带参数的SQL查询中的通配符

时间:2017-07-18 15:20:00

标签: sql asp.net-mvc

我正在使用ASP.NET MVC,我想在我的@stype中添加通配符,如下所示:%@ stype%,但我不知道在我的代码中将它放在哪里,只是评论如果你想要看到我的更多代码,请帮忙。

型号:

public class SearchParameters
{
    public string sarcode { get; set; }
    public string stype { get; set; }
    public SearchParameters()
    {
        this.sarcode = string.Empty;
        this.stype = string.Empty;
    }

    internal List<SqlParameter> ToSqlParameterList()
    {
        List<SqlParameter> parameters = new List<SqlParameter>();
        parameters.Add(new SqlParameter("@sarcode", this.sarcode ?? string.Empty));
        parameters.Add(new SqlParameter("@stype", this.stype ?? string.Empty));
        return parameters;
    }
}

查询

SELECT sarcode,stype,amount,filterno FROM tblsar WHERE ((sarcode = @sarcode OR @sarcode = '') AND (stype = @stype OR @stype = ''))

的Javascript

var table = $('#SARDatatable').DataTable({
    "processing": true,
    dom: "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
        "<'row'<'col-sm-12'tr>>" +
        "<'row'<'col-sm-2'i><'col-sm-5'B><'col-sm-5'p>>",
    buttons: [
        'copyHtml5',
        'excelHtml5',
        'csvHtml5',
        'pdfHtml5',
        'print'
    ],
    "ajax": {
        "url": '/Home/GetAllSAR',
        "type": "POST",
        "datatype": "json",
        "data": function (d) {
            d.searchParameters = {};
            d.searchParameters.sarcode = $('#txtSAR').val();
            d.searchParameters.stype = $('#txtSType').val();
        }
    },
    "columns": [
        { "data": "sarcode", "autoWidth": true },
        { "data": "stype", "autoWidth": true },
        { "data": "amount", "autoWidth": true },
        { "data": "filterno", "autoWidth": true }
    ]
});

2 个答案:

答案 0 :(得分:1)

我建议改用CHARINDEX。例如

WHERE CHARINDEX(@sarcode, sarcode) > 0

答案 1 :(得分:0)

它在您的SQL代码中,尝试使用像

这样的关键字
WHERE ((sarcode like  '%' + @sarcode + '%' OR @sarcode = '')