目的:改變字段更新基於來自.aspx.vb代碼傳入值存儲過程字段變量
問題:我認爲,上述目標的工作,但是我對物業ID得到一個錯誤(這是字母數字),因爲它說無效的列名稱'S7753'在這種情況下我正在更新PropertyID S7753。
.aspx.vb代碼:
command.CommandText = "spActionUpdateOldestDate"
command.CommandType = CommandType.StoredProcedure
Dim vCheck As String = Session.Item("PropertyID").ToString & "-" & Session.Item("SafeGuardingDate").ToString & "-" & Session.Item("ActionsFieldName").ToString
command.Parameters.AddWithValue("@PropertyID", Session.Item("PropertyID").ToString)
command.Parameters.AddWithValue("@SafeGuardingDate", Session.Item("SafeGuardingDate").ToString)
command.Parameters.AddWithValue("@ActionsFieldName", Session.Item("ActionsFieldName").ToString)
command.ExecuteNonQuery()
command.Parameters.Clear()
存儲過程
USE [DB]
GO
/****** Object: StoredProcedure [dbo].[spActionUpdateOldestDate] Script Date: 04/02/2014 14:24:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[spActionUpdateOldestDate]
-- spActionUpdateOldestDate '1234','date','field'
-- Add the parameters for the stored procedure here
@PropertyID nvarchar(50)
,@SafeGuardingDate nvarchar(MAX)
,@ActionsFieldName varchar(MAX)
AS
BEGIN
-- add selection for courseID etc.. here
-- print 'UPDATE [TblActionsOldest] SET ' + @ActionsFieldName + ' = ''' + @SafeGuardingDate + ''' WHERE PropertyID = ''' + @PropertyID+ ''''
Execute ('UPDATE [TblActionsOldest] SET ' + @ActionsFieldName + ' = ''' + @SafeGuardingDate + ''' WHERE PropertyID = ''' + @PropertyID+ '''')
嘗試將執行更改爲打印並手動運行存儲過程傳遞給會話中的值。你會看到它將要執行的聲明。 – Fred
找到並編輯代碼以反映。 – indofraiser