如何使用Sql批量更新表

时间:2016-03-11 17:14:40

标签: c# sql asp.net ajax tsql

现在我有以下用于在表格中添加或更新单个元素的C#/ T-SQL代码

    public async Task AddOrUpdateAnswer ( AnswerSubmission Answer )
    {
        await this._Conn.OpenAsync();
        using (SqlCommand cmd = new SqlCommand("AddOrUpdateAnswer", this._Conn))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@AnswerVal", Answer.AnswerVal);
            cmd.Parameters.AddWithValue("@QuestionId", Answer.QuestionId);
            cmd.Parameters.AddWithValue("@PartnerId", Answer.PartnerId);
            await cmd.ExecuteNonQueryAsync();
        }
        this._Conn.Close();
    }
CREATE PROCEDURE AddOrUpdateAnswer
    @AnswerVal INT,
    @QuestionId INT,
    @PartnerId UNIQUEIDENTIFIER
AS
    BEGIN
        SET NOCOUNT ON
        IF EXISTS ( SELECT 1 FROM Answers WHERE question_id=@QuestionId AND partner_id=@PartnerId )
            UPDATE Answers SET val=@AnswerVal WHERE question_id=@QuestionId AND partner_id=@PartnerId
        ELSE
            INSERT INTO Answers (question_id,partner_id,val) VALUES (@QuestionId, @PartnerId, @AnswerVal)
    END

这是我用来在填写的在线表单中自动保存信息的方法。但我还想要一个我在页面卸载时调用的过程,通过在单个HTTP请求中将它们全部发送到服务器并在数据库中更新它们来更新页面上的所有答案(以防错过单个更新) 。

那么,我如何将此更改为执行相同操作的方法,除了List<AnswerSubmission>和单个存储过程(当然我仍然可以进行单独的答案更新 - 我只是做List<AnswerSubmission>包含1个元素的那些)???我可以通过&#34;表&#34;到cmd

0 个答案:

没有答案