2015-06-17 59 views
0

我不知道該相信什麼。當我們將VB.NET SqlCommand運行在存儲過程之外時,我們是否要在我們的命令中添加EXEC?在VB.NET/SQL中執行存儲過程時,我們是否應該添加「EXEC」?

我得到一個錯誤:

Could not find stored procedure '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 
+2

不,在這種情況下不需要添加EXEC – Steve

+0

如果您在添加時遇到錯誤,並且在忽略錯誤時沒有出現錯誤,那麼聽起來好像您有答案。什麼「其他人」告訴你,當你能夠演示代碼時,沒有太大的區別。 – David

+0

David。我絕對明白你的觀點。我明白你的觀點。大聲笑。 當我告訴人們我曾經在VB中用@符號編寫我的SQL代碼,並且有人告訴我將它存儲在SQL SSMS中時,這與我的理念是一樣的嗎?喜歡它沒有區別! :D – 235098b2735

回答

2

System.Data.CommandType.StoredProcedure會爲你。

這將是有益的:How to: Execute a Stored Procedure that Returns Rows

看到太多:

Using EXECUTE with Stored Procedures You do not have to specify the EXECUTE keyword when you execute stored procedures when the statement is the first one in a batch.

EXECUTE (Transact-SQL)

如果刪除 「執行」 和問題仍然存在,確認此過程中您的數據庫中存在。

相關問題