首頁  >  文章  >  資料庫  >  為什麼我的 C# 程式碼總是為插入的行 ID 回傳 0?

為什麼我的 C# 程式碼總是為插入的行 ID 回傳 0?

Susan Sarandon
Susan Sarandon原創
2024-11-07 13:47:02590瀏覽

Why Does My C# Code Always Return 0 for the Inserted Row ID?

在 C# 中有效檢索插入的行 ID

在進行資料庫操作時,捕獲插入行的唯一識別碼至關重要。在編寫下一段程式碼時尤其如此。然而,儘管實際 ID 具有非零值,但遇到一致的回傳值 0 可能會令人沮喪。

讓我們深入研究您面臨的問題。提供的 C# 程式碼嘗試檢索插入行的 ID,但它始終傳回 0。此行為源自於程式碼執行中的疏忽。

問題的癥結在於以下行:

雖然 ExecuteScalar 方法能夠從執行的查詢中檢索單一值,但需要注意的是,它不會自動傳回插入的行。當您嘗試使用 Convert.ToInt32 將回傳值轉換為 int 時,就會出現問題。這種轉換可能會導致不正確的轉換,從而傳回 0。

要修正這種情況,我們需要將 ExecuteScalar 替換為 ExecuteNonQuery。此函數負責執行非查詢語句,例如插入操作。成功執行插入語句後,您可以利用MySqlCommand 物件的LastInsertedId 屬性來擷取新建立的行的ID:

透過實作此調整,您可以有效取得新建立行的ID插入的行,確保無縫過渡到程式碼執行的下一階段。

以上是為什麼我的 C# 程式碼總是為插入的行 ID 回傳 0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn