Anda telah mencipta fungsi, ActualWeightDIMS, yang menggabungkan nilai integer mewakili berat, panjang, lebar dan tinggi sebenar untuk dipaparkan sebagai rentetan yang diformatkan. Walau bagaimanapun, apabila memanggil fungsi dengan pernyataan SELECT, anda menerima ralat yang menunjukkan kegagalan penukaran apabila menukar varchar 'x' kepada integer.
Ralat berpunca daripada penggabungan integer yang salah fungsi parameter dengan rentetan. SQL Server mentafsirkan penambahan integer (@Actual_Dims_Lenght) pada rentetan ('x') sebagai operasi matematik, yang membawa kepada ralat penukaran.
Untuk menyelesaikan isu ini, anda perlu menukar secara eksplisit parameter integer anda kepada VARCHAR sebelum menggabungkannya dengan rentetan. Begini cara anda harus mengubah suai fungsi anda:
SET @ActualWeightDIMS = CAST(@Actual_Dims_Lenght AS VARCHAR(16)) + 'x' + CAST(@Actual_Dims_Width AS VARCHAR(16)) + 'x' + CAST(@Actual_Dims_Height AS VARCHAR(16))
Dengan menghantar parameter integer ke VARCHAR, anda memastikan operasi itu dianggap sebagai penggabungan rentetan, menghasilkan output terformat yang diingini.
Anda menyebut bahawa pengguna hanya boleh memilih sama ada berat atau dimensi pada halaman ASP.net. Anda bertanya sama ada anda perlu mengendalikan pengesahan ini pada bahagian SQL. Walaupun ia tidak begitu diperlukan, ia boleh memberikan lapisan keselamatan tambahan. Anda boleh menambah kekangan CHECK dalam pangkalan data untuk memastikan bahawa apabila pengguna memilih dimensi, ketiga-tiga nilai dimensi (panjang, lebar dan tinggi) adalah bukan NULL. Ini akan menghalang fungsi daripada mengembalikan hasil yang salah atau tidak lengkap.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Nombor dan Rentetan dengan betul dalam T-SQL untuk Memformat Nombor?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!