第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 SQL Server 中插入新數(shù)據(jù)的 Post 或 Put 方法?

在 SQL Server 中插入新數(shù)據(jù)的 Post 或 Put 方法?

C#
泛舟湖上清波郎朗 2022-06-19 16:38:12
我是 ASP.NET 的新手,我想問一下哪種方法更適合在 SQL Server 中插入新行。我要避免的最大問題是將數(shù)據(jù)重復(fù)插入 SQL Server。也許由于一些網(wǎng)絡(luò)延遲,我會在我的客戶端應(yīng)用程序中出現(xiàn)服務(wù)器錯誤,但服務(wù)器已經(jīng)收到我的數(shù)據(jù)并將它們插入 SQL Server。當(dāng)我重試時,它會重新插入它們。post 或 put 方法可以避免這種情況嗎?或者我需要創(chuàng)建自己的機(jī)制?public void Post([FromBody]string value){}// PUT api/values/5public void Put(int id, [FromBody]string value){}還有最后一個問題,我可以在同一個控制器中創(chuàng)建兩個 post 方法還是必須創(chuàng)建一個新方法?抱歉,如果問題看起來很簡單,但正如我所說,我是 asp.net 的新手。謝謝
查看完整描述

2 回答

?
慕沐林林

TA貢獻(xiàn)2016條經(jīng)驗 獲得超9個贊

POST 或 PUT 方法本身并不能解決任何問題。如果您想避免您描述的行為,您應(yīng)該通過向該方法添加您自己的邏輯來解決該問題。您的實現(xiàn)必須控制數(shù)據(jù)是否存在。


理想情況下,在 REST API 上,POST 用于創(chuàng)建資源,PUT 用于更新現(xiàn)有資源。


話雖如此,您可以根據(jù)誰在調(diào)用該端點(diǎn)以及在應(yīng)用程序的哪個實例中來實現(xiàn)您的邏輯。例如,如果有人兩次使用同一資源發(fā)送 POST,您可以檢查該資源是否存在并發(fā)送描述該情況的 HTTP 狀態(tài)。


編輯:


我將添加一些代碼向您展示。它是如何工作的:


假設(shè)您想在應(yīng)用程序中創(chuàng)建和更新用戶。其端點(diǎn)可能類似于:http://localhost:8080/api/users/使用 POST 方法并將用戶作為 JSON 發(fā)送到請求正文中。


您將擁有一個像這樣的 UsersController:


    public HttpResponseMessage Post([FromBody]UserModel user)

    {

        SQL.InsertUser(user);


        return Request.CreateResponse(HttpStatusCode.OK);

    }

然后在數(shù)據(jù)層你可以做這樣的事情:


    public static void InsertUser(UserModel user)

    {

        try

        {

            using (_conn = new SqlConnection(_connectionString))

            {

                _conn.Execute(@"IF EXISTS(SELECT * FROM USER WHERE ID = @ID)

                                BEGIN

                                    /*DO THE UPDATE*/

                                END

                            ELSE

                                BEGIN

                                    /*DO THE INSERT*/

                                END", user);

            }

        }

        catch (Exception ex)

        {

            throw ex;

        }

    }

這不是最佳方法,但我想在這里展示的是您可以在 POST 或 PUT 上插入資源。問題是 RESTful API 的設(shè)計目的是遵循 RESTful 標(biāo)準(zhǔn)。如果您使用 PUT 方法插入數(shù)據(jù),那么您可能會遇到架構(gòu)問題,并且您的 API 根本不是 RESTful。即使它使用 HTTP 方法形成通信等等。


在 RESTful API 上遵循標(biāo)準(zhǔn)非常重要。對于您和使用 API 的人。


在這里,您獲得了 RESTful 入門圣經(jīng)。我通常將此發(fā)送給所有希望了解 RESTful 世界的人:https ://blog.octo.com/en/design-a-rest-api/


查看完整回答
反對 回復(fù) 2022-06-19
?
瀟湘沐

TA貢獻(xiàn)1816條經(jīng)驗 獲得超6個贊

我們用 [HttpPost] 屬性修飾的 Post() 方法。

Put() 能夠更新 RESTful 服務(wù)中的某些內(nèi)容


查看完整回答
反對 回復(fù) 2022-06-19
  • 2 回答
  • 0 關(guān)注
  • 355 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號