2014-04-30 71 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

很高兴帮助:) –