Dot-Net
過程需要未提供的參數
訪問 SQL Server 中的儲存過程時出現錯誤
Server Error in '/' Application. Procedure or function 'ColumnSeek' expects parameter '@template', which was not supplied.當我通過.net 到 sql 的數據連接呼叫帶有參數的儲存過程時,就會發生這種情況
(System.data.SqlClient),即使我提供了參數。這是我的程式碼。SqlConnection sqlConn = new SqlConnection(connPath); sqlConn.Open(); //METADATA RETRIEVAL string sqlCommString = "QCApp.dbo.ColumnSeek"; SqlCommand metaDataComm = new SqlCommand(sqlCommString, sqlConn); metaDataComm.CommandType = CommandType.StoredProcedure; SqlParameter sp = metaDataComm.Parameters.Add("@template",SqlDbType.VarChar,50); sp.Value = Template; SqlDataReader metadr = metaDataComm.ExecuteReader();我的儲存過程是:
USE [QCApp] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[ColumnSeek] @template varchar(50) AS EXEC('SELECT Column_Name, Data_Type FROM [QCApp].[INFORMATION_SCHEMA].[COLUMNS] WHERE TABLE_NAME = ' + @template);我試圖弄清楚我在這裡做錯了什麼。
**編輯:**事實證明,模板為空,因為我從通過 URL 傳遞的參數中獲取它的值,並且我搞砸了 url 參數傳遞(我使用的是
@for 而不是&)
我會檢查我的應用程式碼並查看您將 @template 設置為什麼值。我懷疑它是空的,這就是問題所在。
除了這裡的其他答案,如果您忘記輸入:
cmd.CommandType = CommandType.StoredProcedure;然後你也會得到這個錯誤。