首頁 >後端開發 >C++ >如何使用位置參數而不是命名參數來更新 OLEDB 表?

如何使用位置參數而不是命名參數來更新 OLEDB 表?

Barbara Streisand
Barbara Streisand原創
2024-12-25 08:58:17290瀏覽

How Can I Update an OLEDB Table Using Positional Parameters Instead of Named Parameters?

使用 OLEDB 參數更新表

本題重點介紹更新包含三個欄位的表:LM_code、M_Name 和 Desc。雖然 LM_code 是自動產生的,但 M_Name 和 Desc 需要使用 OLEDB 參數進行更新。

問題陳述

提供的程式碼嘗試使用直接 SQL 更新表查詢,但值未更新。此問題表明使用 OLEDB 參數可能會解決此問題。

OLEDB 本身不支援命名參數。但是,它可以識別意圖並允許您按順序傳遞參數。若要利用此功能,請依照下列步驟操作:

  1. 使用位置參數: 依照 SQL 語句中定義的順序傳遞值,而不是命名參數。
  2. 建立OLEDB 指令:建立連線並建立OLEDB 指令
  3. 依序新增參數: 將參數加入指令對象,確保其順序與SQL 查詢中的佔位符相對應。
  4. 設定 SQL 語句: 將帶有位置佔位符的 SQL 語句指派給指令文字。
  5. ExecuteNonQuery: 執行更新表的指令。

程式碼片段:

using (OleDbConnection conn = new OleDbConnection(connString))
{
    conn.Open();
    OleDbCommand cmd = conn.CreateCommand();

    cmd.Parameters.Add(new OleDbParameter("@MName", M_Name));
    cmd.Parameters.Add(new OleDbParameter("@Desc", Desc));
    cmd.Parameters.Add(new OleDbParameter("@LMCode", LM_code));

    cmd.CommandText = "Update Master_Accounts SET M_Name = @MName, Desc = @Desc WHERE LM_code = @LMCode";
    cmd.ExecuteNonQuery();
}

透過遵循此方法,您可以使用OLEDB參數有效地更新表,確保正確的值傳播和欄位更新。

以上是如何使用位置參數而不是命名參數來更新 OLEDB 表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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