Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mendapatkan Kunci Utama daripada Parameter Output Prosedur Tersimpan dalam C#?
Menggunakan parameter output prosedur tersimpan dalam C#
Apabila mendapatkan semula data daripada prosedur yang disimpan, anda selalunya perlu mengakses parameter output untuk mendapatkan maklumat tambahan. Dalam contoh ini, program C# menghadapi masalah semasa cuba mendapatkan kunci utama yang dikembalikan oleh prosedur tersimpan usp_InsertContract.
Prosedur yang disimpan diubah suai sedikit untuk menggunakan SCOPE_IDENTITY(), seperti ditunjukkan di bawah:
<code class="language-sql">CREATE PROCEDURE usp_InsertContract ( @ContractNumber varchar(7), @NewId int OUTPUT ) AS BEGIN INSERT INTO [dbo].[Contracts] (ContractNumber) VALUES (@ContractNumber) SELECT @NewId = SCOPE_IDENTITY() END</code>
Kod C# juga telah dilaraskan untuk mendapatkan semula nilai output dengan betul:
<code class="language-csharp">// 打开连接并执行存储过程 conn.Open(); cmd.ExecuteNonQuery(); // 从@NewId读取输出值 int contractID = Convert.ToInt32(cmd.Parameters["@NewId"].Value); conn.Close();</code>
Pengubahsuaian ini harus menyelesaikan masalah dengan memastikan kunci utama dikembalikan dengan betul sebagai parameter output dan boleh diakses dalam program C#.
Nota: Pastikan anda mengesahkan bahawa jadual Kontrak mempunyai lajur dengan atribut IDENTITY dikonfigurasikan dengan betul. Lajur IDENTITY yang tiada juga mungkin menyukarkan untuk mendapatkan nilai kunci utama.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kunci Utama daripada Parameter Output Prosedur Tersimpan dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!