在VB.NET / SQL中执行存储过程时,我们是否应该添加“EXEC”?

时间:2015-06-17 19:20:29

标签: sql-server vb.net stored-procedures

我不知道该相信什么。当我们从存储过程运行VB.NET SqlCommand时,我们是否在命令中添加EXEC?!

我收到错误:

  

无法找到存储过程'EXEC uspGrabAutoByYMM'。

但是其他人告诉我你必须把EXEC放在那里才能运行。

这是我的示例代码:

Public Sub BindGridAutosYMM()
    Dim constring As String = "server=classified;database=classified"
    Using con As New SqlConnection(constring)
        Using cmd As New SqlCommand("EXEC uspGrabAutoByYMM", con)
            cmd.Parameters.Add("@Year", SqlDbType.VarChar).Value = TextBox1.Text
            cmd.Parameters.Add("@Make", SqlDbType.VarChar).Value = TextBox2.Text
            cmd.Parameters.Add("@Model", SqlDbType.VarChar).Value = TextBox3.Text
            cmd.CommandType = CommandType.StoredProcedure
            Using sda As New SqlDataAdapter(cmd)
                Using dt As New DataTable()
                    sda.Fill(dt)
                    DataGridView1.DataSource = dt
                End Using
            End Using
        End Using
    End Using
End Sub

1 个答案:

答案 0 :(得分:2)

没有

System.Data.CommandType.StoredProcedure为你做。

这将有所帮助:How to: Execute a Stored Procedure that Returns Rows

另见:

  

将EXECUTE用于存储过程   当语句是批处理中的第一个语句时,您不必在执行存储过程时指定EXECUTE关键字。

EXECUTE (Transact-SQL)

如果您删除" exec"并且问题仍然存在,请确认您的数据库中存在此过程。