iT邦幫忙

0

Delete Web API 刪除沒有特定欄位的資料

各位高手好,小弟手機APP端需要刪除MSSQL資料表中的資料
資料表格式如下
https://ithelp.ithome.com.tw/upload/images/20190630/20117865ND7vs6QKFN.png
這些資料是從手機端POST進來的
因為我只有兩個欄位 , 嘗試撰寫DELETE API時遇到一個問題 ,我沒有單純的int欄位,所以不知道該怎麼修改我的delete api

   public void Delete(int id)
        {
            using (APIdataEntities entities = new APIdataEntities())
            {
     entities.Message_Send.Remove(entities.Message_Send.FirstOrDefault(e => e.ID == id));
            }
        }

我使用以上的方法可以成功DELETE資料,但是資料表必須增加一個ID的int欄位
https://ithelp.ithome.com.tw/upload/images/20190630/20117865RDdt3bYyvB.png

請問該怎麼做才可以不必指定固定欄位刪除資料(我希望透過SQL查詢結果左邊的排序數字來刪除),或是我的方向錯誤了,我應該修改POST端的語法,讓每一筆資料自動POST ID來識別欄位,以利DELETE刪除資料呢?

froce iT邦大師 2 級 ‧ 2019-06-30 18:39:47 檢舉
去找start_time和message一樣的資料去刪就好,不過還是建議加key
ioesgoddd iT邦新手 5 級 ‧ 2019-06-30 19:08:34 檢舉
目前start_time就是我的主KEY,但因DATETIME格式太長,APP端不好寫,所以沒有想到要用他來刪除資料
小魚 iT邦大師 1 級 ‧ 2019-06-30 20:12:02 檢舉
都是用變數, 寫起來不是都一樣?

1 個回答

1
小魚
iT邦大師 1 級 ‧ 2019-06-30 18:23:24
最佳解答

沒辦法,
基本上一個好的資料表設計都會有一個主鍵,
透過主鍵去做刪除的動作.

我試過用 IDENTITY 可以加入主鍵.

ALTER TABLE 資料表名稱 ADD 欄位名稱 INT NOT NULL PRIMARY KEY IDENTITY(1, 1); 
ioesgoddd iT邦新手 5 級 ‧ 2019-06-30 19:07:10 檢舉

謝謝你,用此方法就可以自動讓主KEY自動累加了!

小魚 iT邦大師 1 級 ‧ 2019-06-30 20:13:09 檢舉

IDENTITY 可以看成 MySql 的 AUTO_INCREASEMENT

我要發表回答

立即登入回答