一次插入一个值

时间:2014-04-30 21:43:15

标签: c# asp.net sql sql-server

我有一个表格,其中包含表单详细信息,表单num(标识列)和Question Score的5列。

我对表单的插入过程非常基础:

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调用答案,它在单选按钮选择(评分)之间的值会发生变化。

我的问题是,我如何编写一个程序来将所有答案插入一行,这意味着每次点击" next"按钮将特定答案的分数插入特定列的行。

如果我再次使用chack按钮来浏览表单,我该如何更新程序呢?

我正在使用MS SQL 2012

1 个答案:

答案 0 :(得分: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)
相关问题