Betulkan ralat "Objek tidak boleh ditukar daripada DBNull kepada jenis lain"
Ralat ini biasanya berlaku apabila cuba menukar nilai DBNull kepada jenis data lain. Dalam kes khusus anda, masalah mungkin berlaku pada baris kod berikut dalam kaedah Cipta():
<code>DataTO.Id = Convert.ToInt64(dataAccCom.GetParameterValue(IDbCmd, "op_Id"));</code>
Penukaran ini akan gagal jika parameter output "op_Id" mengembalikan nilai DBNull. Untuk menyelesaikan isu ini, anda harus menyemak nilai DBNull dan mengendalikannya dengan sewajarnya. Berikut ialah versi kod yang diubah suai:
<code>var outputParam = dataAccCom.GetParameterValue(IDbCmd, "op_Id"); if (outputParam is DBNull) DataTO.Id = 0; // 或根据需要分配默认值 else DataTO.Id = Convert.ToInt64(outputParam);</code>
Dengan menambahkan semakan ini, anda memastikan penukaran hanya dilakukan jika parameter output mengandungi nilai yang sah. Ini harus menghapuskan ralat "Objek tidak boleh ditukar daripada DBNull kepada jenis lain".
Perhatikan bahawa ralat ini juga boleh berlaku jika mana-mana parameter lain ditetapkan kepada DBNull dan hantaran dicuba pada parameter tersebut. Sila semak kod anda dengan teliti untuk mengenal pasti sebarang kemungkinan kejadian masalah ini.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat 'Objek tidak boleh dihantar dari DBNull ke jenis lain' dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!