![](/img/trans.png)
[英]Insert into SQL Server stored procedure to be a command in vb.net 2003
[英]SQL Server stored procedure with vb.net
我是SQL Server存储过程的新手。
请帮助了解为什么没有输出。
我有一个存储过程sp_sample
,在其中提供条件查询
PROCEDURE [dbo].[sp_sample]
@dep nvarchar(50)
AS
BEGIN
select * FROM emp WHERE dep= '+ @dep +'
END
而vb.net中的执行代码是
lconn = New SqlConnection(DpConnectionString)
lconn.Open()
lcmd = New SqlCommand("sp_sample", lconn)
lcmd.CommandType = CommandType.StoredProcedure
lcmd.Parameters.Add(New SqlParameter("@dep", Data.SqlDbType.VarChar)).Value = TextBox1.Text.ToString
' lcmd.Parameters.Add(New SqlParameter("@pnv_String", Data.SqlDbType.VarChar)).Value = ""
ladp = New SqlDataAdapter(lcmd)
lds = New DataSet
ladp.Fill(lds)
DataGridView1.DataSource = lds.Tables(0)
DataGridView1.Refresh()
猜测(没有样本输入和样本数据,我只能猜测),您的问题在这里WHERE dep= '+ @dep +'
假设您将dep设置为一个值,例如select @dep = "Parvathi"
并且在表中,dep的值是Parvathi,实际上要匹配的是字符串“ + @dep +”,它将永远不会与字符串“ Parvathi”匹配。
您的where子句应该(可能)是WHERE dep= @dep
将您的过程更改为此:
PROCEDURE [dbo].[sp_sample]
@dep nvarchar(50)
AS
BEGIN
select *
FROM emp
WHERE dep = @dep
END
似乎您是从内联查询创建存储过程的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.