0
我有一個asp.net 4.0應用程序打sql 2008分貝。我有一個非常基本的存儲過程,旨在返回記錄。它在.net ide服務器瀏覽器中執行時有效。但是,當我遍歷.net代碼時,即使變量以我喜歡的方式傳遞(並且之前已經完成了許多次ime),也不會返回任何內容。這裏是存儲過程...爲什麼我的存儲過程不能正確運行?
ALTER PROCEDURE get_cases_by_search_criteria
@vin as varchar(50) = null
AS
declare @sqlstr varchar(5000)
set @sqlstr = 'SELECT
[Case].CaseID,
[Case].VIN,
[Case].Make,
[Case].Model,
Contact.FirstName,
Contact.LastName,
FROM [Case] INNER JOIN
Contact ON [Case].CaseID = Contact.CaseID
Where Contact.ContactTypeID = 1 '
if @vin is not null and @vin <> ''
BEGIN
set @sqlstr = @sqlstr + ' and ' + ('[Case].VIN = ''' + convert(varchar,@vin) + '''')
END
exec(@sqlstr)
這裏是我如何傳遞的價值觀......
'non-specific parameter
param1 = oFactory.CreateParameter()
param1.ParameterName = "@vin"
param1.DbType = DbType.String
param1.Value = oSearchCriteria.VIN
oCmd.Parameters.Add(param1)
oCmd.CommandType = CommandType.StoredProcedure
oCmd.CommandText = "get_cases_by_search_criteria"
Using (oConnection)
oConnection.Open()
oReader = oCmd.ExecuteReader()
While oReader.Read
你可以Exec的它SQL Management Studio並打印@sqlstr?它可能會幫助您確定select語句是否有問題。 – CatchingMonkey
我可以看到你的代碼沒有問題。也許嘗試在一個語句中添加所有參數oCmd.Parameters.Add(「@ vin」,oSearchCriteria.VIN,DbType.String) –
如果我打印出來並打印出(在傳入VIN的有效參數之後)會期待。而且,當我複製並粘貼到sql編輯器中時,它會運行並返回記錄! – lollygag