如何将“%”作为参数的一部分传递给SqlCommand?

时间:2013-09-12 16:29:49

标签: vb.net parameter-passing sqlcommand

使用SqlDataSource时,就是这样:

SqlDataSource1.SelectCommand = "SELECT field,field FROM TABLE WHERE name LIKE @name"
SqlDataSource1.SelectParameters.Clear()
SqlDataSource1.SelectParameters.Add( _
            New Parameter("name", DbType.String, "%" + TextBox1.Text + "%"))

但如果我尝试:

command.Parameters.Add( _
    New Parameter("name", SqlDbType.VarChar, "%" + TextBox1.Text + "%"))

command.Parameters.Add(New Parameter("name", DbType.String, "%" + TextBox1.Text + "%"))

失败了。如何使用SqlCommand

2 个答案:

答案 0 :(得分:3)

尝试构建您的sql语句,如下所示:

SELECT field,field FROM TABLE WHERE name LIKE N'%' + @name + N'%'

导致VB看起来像这样:

SqlDataSource1.SelectCommand = "SELECT field,field FROM TABLE WHERE name LIKE N'%' + @name + N'%'"
SqlDataSource1.SelectParameters.Clear()
SqlDataSource1.SelectParameters.Add("@Name", SqlDbType.NVarChar, 50).Value = TextBox1.Text

答案 1 :(得分:1)

尝试以其他方式添加参数

Command.Parameters.Add("@Name", SqlDbType.VarChar).Value = "%" & TextBox1.Text & "%"

此外,为了避免任何问题,请尝试使用& 代替 + 。并不是说我可以确定%被认为是一个数字或心律失常的情况,但似乎可以解释为Here