Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 22966|Jawab: 1

[Sumber] spring.net nhibernate sqldatetime overflow solution

[Salin tautan]
Diposting pada 13/09/2017 14.34.58 | | | |
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!







Mantan:.NET/C# operasi penambahan, penghapusan, modifikasi, dan kueri cache redis [kode sumber]
Depan:asp.net Analisis kesalahan anomali situs web
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com