Sql server 使用存储过程选择近似值

Sql server 使用存储过程选择近似值,sql-server,vb.net,Sql Server,Vb.net,使用sqlserver2005和VB.Net 表1 ID Name Dept 001 Raja IT 002 Ravi CSE 003 Suns IT 存储过程 Create Procedure Selecttable1 As Select ID, Name, Dept from table1 我想用如下条件执行存储过程 cmd = new sqlcommand("Exec SelectTable1 where id like '" & idsearch.Text & "

使用sqlserver2005和VB.Net

表1

ID Name Dept

001 Raja IT
002 Ravi CSE
003 Suns IT
存储过程

Create Procedure Selecttable1 As Select ID, Name, Dept from table1
我想用如下条件执行存储过程

cmd = new sqlcommand("Exec SelectTable1 where id like  '" & idsearch.Text & "%' ", dbcon)
cmd.ExecuteNonQuery
idsearch.Text-文本框输入值

当我尝试运行上面的查询时,它显示了错误

如何使用条件执行存储过程


需要查询帮助

您似乎正在寻找使用参数运行存储过程

为此,需要使用参数创建存储过程,调用存储过程的代码应该传入这些参数

存储过程:

Create Procedure Selecttable1 
   @inID INT
As Select ID, Name, Dept from table1
WHERE ID = @inID
代码:

不要使用示例中类似的构造(
“Exec SelectTable1 where id like'”&idsearch.Text&“%”
),因为这是一个开放性漏洞


您应该使用,如上所述,以避免出现这种情况。

您似乎正在寻找使用参数运行存储过程

为此,需要使用参数创建存储过程,调用存储过程的代码应该传入这些参数

存储过程:

Create Procedure Selecttable1 
   @inID INT
As Select ID, Name, Dept from table1
WHERE ID = @inID
代码:

不要使用示例中类似的构造(
“Exec SelectTable1 where id like'”&idsearch.Text&“%”
),因为这是一个开放性漏洞


您应该使用,如上所述,以避免这种情况。

我将创建第二个存储过程,该过程将“idsearch”作为参数,并将类似条件直接应用于基础查询

e、 g


我将创建第二个存储过程,它将“idsearch”作为参数,并将类似条件直接应用于基础查询

e、 g

下面是一个来自标准SQL Server文档的示例(不包括您的数据)

您可以在我链接的站点上找到SQL Server所需的大部分文档。

以下是标准SQL Server文档中的一个示例(不包括您的数据)


您可以在我链接到的站点上找到SQL Server所需的大部分文档。

+1。我们中唯一提到SQL注入漏洞的人。干得好。我们中唯一提到SQL注入漏洞的人。干得好。挑剔:这是一个存储过程-不是存储过程…挑剔:这是一个存储过程-不是存储过程。。。。
CREATE PROCEDURE MySproc2
    @IDSearch VARCHAR(100)
AS
BEGIN
   SELECT SomeField
   FROM YourTable
   WHERE AnotherField LIKE @IDSearch + '%'
END
CREATE PROCEDURE au_info2
   @lastname varchar(30) = 'D%',
   @firstname varchar(18) = '%'
AS 
SELECT au_lname, au_fname, title, pub_name
FROM authors a INNER JOIN titleauthor ta
   ON a.au_id = ta.au_id INNER JOIN titles t
   ON t.title_id = ta.title_id INNER JOIN publishers p
   ON t.pub_id = p.pub_id
WHERE au_fname LIKE @firstname
   AND au_lname LIKE @lastname
GO