2014-04-30 92 views
-1

我有一個表格,其中包含表單詳細信息,表單數量(標識列)和5個問題分數列。一次插入一個值

我對形式插入PROC是很基本的:

ALTER PROC [dbo].[Insert_New_Form] 
     @questionOne int, @questionTwo int, @questionThree int, 
     @questionFour int, @questionFive Int as 
begin 
    Insert into Questionire_Form values ( 
     @questionOne, @questionTwo, @questionThree, 
     @questionFour, @questionFive) 
end 

和我保持一個int呼叫應答,它的單選按鈕選擇(得分)之間的價值變化。

我的問題是,我該如何編寫一個程序來將所有答案插入一行,即每次點擊「下一步」按鈕時,特定答案的分數將插入到特定列的行中。

我應該如何使用更新過程再次使用chack按鈕來完成表單?

我使用MS SQL 2012

回答

0

我希望下面的代碼將幫助您

CREATE PROCEDURE add_Score 
@userID   INT 
@questionNumber INT, 
@score   INT 
AS 
    DECLARE @ColumnaName VARCHAR(100) 
    DECLARE @sql   VARCHAR(1000) 
    SET @ColumnName = 
    (CASE @questionNumber 
     WHEN 1 THEN 'ColumnOne' 
     WHEN 2 THEN 'ColumnTwo' 
     WHEN 3 THEN 'ColumnThree' 
     WHEN 4 THEN 'ColumnFour' 
     END) 

    IF EXISTS(SELECT * FROM Questionire_Form WHERE UserID = @userID) THEN 
    BEGIN 
     SET @sql = 'UPDATE Questionire_Form SET ' + @ColumnName + ' = ' + @score + ' WHERE UserID = ' + @userID 
    END 
    ELSE 
    BEGIN 
     SET @sql = 'INSERT INTO Questionire_Form (UserID, ' + @ColumnName + ') VALUES(' + @userID + ', ' + @score + ')' 
    END 

    EXEC(@sql) 
+0

感謝那些幫助了很多!我只需要一個提示如何將這個應用在使用SqlConnection和SqlCommand的代碼背後 – user3590965

+0

很高興幫助:) –