SqlDateTime meluap. Harus antara 1/1/1753 12:00:00 AM dan 12/31/9999 11:59:59 PM
Saat melakukan operasi pembaruan dari situs web, saya terus mendapatkan kesalahan, dan saya pikir itu adalah konfigurasi XML atau ada yang tidak beres saat pernyataan SQL dieksekusi
Saya mencoba menggunakan penganalisis kueri SQL untuk mengambil pernyataan SQL yang dihasilkan, dan menemukan bahwa apa masalahnya dengan eksekusi yang benar? Pernyataan SQL adalah sebagai berikut:
exec sp_executesql N'INSERT KE DALAM dbo. LeanLogs (Versi, OrganizationId, CustomInfoId, LastLeanAlarmType, NowLeanAlarmType, InsertTime, TreatedTime) NILAI (@p0, @p1, @p2, @p3, @p4, @p5, @p6); pilih SCOPE_IDENTITY()',N'@p0 int,@p1 int,@p2 int,@p3 int,@p4 int,@p5 datetime,@p6 datetime',@p0=1,@p1=35,@p2=12,@p3=10,@p4=10,@p5='2017-09-13 13:09:41',@p6=NULL SqlDateTime meluap. Resolusi harus --- antara 1/1/1753 12:00:00 AM dan 12/31/9999 11:59:59 PM
Penyebab kesalahan
Jika nilai jenis waktu yang diteruskan ke database adalah NULL, atau saat menyisipkan atau memperbarui database untuk DateTime.MinValue, nilai bidang datetime adalah null secara default. NULL di sini mengacu pada null dalam kode program, dan sebagian besar skenario di mana hal ini terjadi adalah: variabel tipe waktu didefinisikan dalam program, dan diteruskan ke database (atau prosedur tersimpan) tanpa menetapkan nilai. Saat ini, nilai variabel ini ditetapkan 01/01/01 secara default. Karena bidang jenis DateTime dalam database, nilai minimumnya adalah 1/1/1753 12:00:00, sedangkan . NET Framework, tipe DateTime, nilai minimumnya adalah 1/1/0001 0:00:00, jelas, itu di luar rentang nilai minimum nilai sql, mengakibatkan kesalahan luapan data. Mari kita lihat cara melihat .net dan sql max min time melalui C#:
Efek keluaran:
Pada akhirnya, itu diutak-atik selama lebih dari sepuluh menit,
Penyebab kesalahan terakhir adalah sebagai berikut:
Salah satu jenis atribut objek juga merupakan objek, yaitu tabel memiliki kunci asing, dan atribut datetime baru ditambahkan ke tabel kunci asing, yang tidak diberi nilai dan tidak diatur ke jenis nullable
Saat menambahkan atau memperbarui objek, tanggalwaktu objek kunci asing secara otomatis dilampirkan ke nilai default, karena waktu nilai default .net kurang dari waktu minimum default database
Solusi: Atur properti tipe datetime dari objek kunci asing ke tipe nullable, bantu kolega menyelesaikannya dengan sempurna!
|