Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SqlNullValueException saat menjalankan prosedur tersimpan dengan MySqlCommand

Ini terlihat seperti bug di Oracle's MySQL Connector/NET (alias MySql.Data ). Sepertinya tidak ada bug yang saya kenal di database bug itu; mungkin perlu diajukan sebagai masalah baru. (Bug 75301 terlihat mirip tetapi tidak segera terlihat bahwa itu adalah masalah yang sama.)

Saya akan merekomendasikan beralih ke MySqlConnector ; ini adalah pustaka ADO.NET alternatif untuk MySQL yang memiliki kompatibilitas hebat dengan Dapper dan memperbaiki banyak bug yang diketahui di Konektor MySQL/NET. MySqlConnector juga memiliki dukungan I/O asinkron yang sebenarnya, yaitu tidak diterapkan di Konektor/NET; ini penting jika Anda ingin menggunakan QueryAsync dalam kode Anda.

Jika Anda ingin tetap menggunakan Oracle's MySQL Connector/NET, Anda mungkin dapat mengatasi masalah tersebut dengan menambahkan CheckParameters=false ke string koneksi Anda. Perhatikan bahwa ini bisa menjadi perubahan besar ke kode Anda; jika Anda menyetel setelan ke false, Anda harus memastikan secara manual bahwa parameter ditambahkan ke setiap CommandType.StoredProcedure MySqlCommand berada dalam urutan yang sama persis dengan database (karena MySql.Data tidak akan lagi memperbaikinya untuk Anda).

Pembaruan: Setelah melihat kode sumber Connector/NET, tampaknya database Anda memiliki beberapa data yang tidak diharapkan. Apakah salah satu dari dua kueri berikut menghasilkan baris? Jika ya, nilai mana yang NULL ?

SELECT * FROM information_schema.routines
WHERE specific_name IS NULL OR
    routine_schema IS NULL OR
    routine_name IS NULL OR
    routine_type IS NULL OR
    routine_definition IS NULL OR
    is_deterministic IS NULL OR
    sql_data_access IS NULL OR
    security_type IS NULL OR
    sql_mode IS NULL OR
    routine_comment IS NULL OR
    definer IS NULL;

SELECT * FROM mysql.proc
WHERE specific_name IS NULL OR
    db IS NULL OR
    name IS NULL OR
    type IS NULL OR
    body IS NULL OR
    is_deterministic IS NULL OR
    sql_data_access IS NULL OR
    security_type IS NULL OR
    sql_mode IS NULL OR
    comment IS NULL OR
    definer IS NULL;

Server MySQL apa yang Anda gunakan (MySQL, MariaDB, Amazon Aurora) dan versi apa?




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menggunakan mysqldump untuk sebagian tabel?

  2. MediumBlob dalam skema database Laravel

  3. menampilkan semua catatan dari satu tabel dan mencocokkan catatan dari yang lain

  4. Cara Mendapatkan Total Pengguna Kumulatif Per Hari di MySQL

  5. Mysql tidak memulai dalam wadah buruh pelabuhan di MacOS setelah pembaruan buruh pelabuhan