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

Cara memasukkan banyak gambar ke dalam tabel database MySQL dengan kunci asing yang merujuk pada satu kunci utama

Masalah Anda adalah baris ini:

using (MySqlCommand cmd = new MySqlCommand("INSERT INTO propertyimage(MultipleImageName, MultipleImageMap, PropertyID) VALUES (@MultipleImageName, @MultipleImageMap, LAST_INSERT_ID()); "))

Ini akan berfungsi pada penyisipan pertama, karena LAST_INSERT_ID adalah nilai kunci asing yang sesuai.

Tapi pada kedua masukkan, LAST_INSERT_ID sekarang telah berubah menjadi nilai ID dari catatan yang baru saja Anda masukkan (sisipan pertama).

Untuk memperbaikinya, Anda perlu mendapatkan LAST_INSERT_ID ke dalam variabel C# , dan kemudian meneruskannya ke setiap pernyataan SQL berikutnya (yaitu @ForeignKeyID daripada LAST_INSERT_ID ).

Ini berarti mengubah pertama . Anda :

cmd.ExecuteNonQuery();

ke:

cmd.ExecuteNonQuery();
insertedID = cmd.LastInsertedId;

di mana insertID adalah variabel (kemungkinan int ) yang Anda nyatakan di bagian atas metode Anda.

Anda kemudian perlu mengubah:

using (MySqlCommand cmd = new MySqlCommand("INSERT INTO propertyimage(MultipleImageName, MultipleImageMap, PropertyID) VALUES (@MultipleImageName, @MultipleImageMap, LAST_INSERT_ID()); "))
{


    using (MySqlDataAdapter sda = new MySqlDataAdapter())
    {

        cmd.Parameters.AddWithValue("@MultipleImageName", file.FileName);
        cmd.Parameters.AddWithValue("@MultipleImageMap", "ImagesUploaded/" + file.FileName);

        cmd.Connection = con;
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }
}

ke:

using (MySqlCommand cmd = new MySqlCommand("INSERT INTO propertyimage(MultipleImageName, MultipleImageMap, PropertyID) VALUES (@MultipleImageName, @MultipleImageMap, @InsertedID); "))
{


    using (MySqlDataAdapter sda = new MySqlDataAdapter())
    {

        cmd.Parameters.AddWithValue("@MultipleImageName", file.FileName);
        cmd.Parameters.AddWithValue("@MultipleImageMap", "ImagesUploaded/" + file.FileName);
        cmd.Parameters.AddWithValue("@MultipleImageMap", "ImagesUploaded/" + file.FileName);
        cmd.Parameters.AddWithValue("@InsertedID", InsertedID);

        cmd.Connection = con;
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Yii2 RBAC Beberapa Tugas untuk Setiap Pengguna Berdasarkan Grup

  2. MySQL + Query untuk mengembalikan semua baris yang memiliki kolom yang 'aktif' di tabel lain

  3. SQL:apakah kita memerlukan kata kunci APAPUN/BEBERAPA dan SEMUA?

  4. Praktik yang baik untuk membagi data ke beberapa basis data?

  5. Bagaimana cara membuat kunci utama secara serial?