作者james999 (無傷大雅)
看板Database
標題[SQL ] Update時,如果主鍵不存在,依然成功@@?
時間Wed Sep 18 09:58:53 2019
資料庫名稱:SQLite
資料庫版本:3
內容/問題描述:
程式碼如下:
--
string connectStr;
connectStr = ConfigurationManager.AppSettings["conStr"];
SQLiteConnection myConnection = new SQLiteConnection(connectStr);
SQLiteCommand sqlCmd = new SQLiteCommand();
sqlCmd.CommandType = System.Data.CommandType.Text;
sqlCmd.CommandText = "Update [tblIdentity] Set Name = @Name,
ColorCode = @ColorCode where IdentityGUID = @IdentityGUID";
sqlCmd.Connection = myConnection;
sqlCmd.Parameters.Add("@IdentityGUID", DbType.String);
sqlCmd.Parameters["@IdentityGUID"].Value =
paramUpdateIdentity.IdentityGUID;
sqlCmd.Parameters.Add("@Name", DbType.String);
sqlCmd.Parameters["@Name"].Value = paramUpdateIdentity.Name;
sqlCmd.Parameters.Add("@ColorCode", DbType.String);
sqlCmd.Parameters["@ColorCode"].Value =
paramUpdateIdentity.ColorCode;
--
在測試時嘗試傳入不存在的IdentityGUID,結果沒有報錯...
原本存在於資料庫內的資料也沒有變化,請問本來就這樣嗎@@?
謝謝..
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.128.217 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1568771935.A.4AD.html
※ 編輯: james999 (220.132.128.217 臺灣), 09/18/2019 09:59:28
→ konkonchou: update不存在的抓影響列數會得到0, 不會報錯 09/19 10:39
→ konkonchou: 或有特殊需求, 譬如判斷不存在insert, 可改用replace 09/19 10:40
推 far0802: 要取得改變的資料可以用@@rowcount來進行判斷是否成功 10/02 01:50