Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एकल प्राथमिक कुंजी को संदर्भित करने वाली विदेशी कुंजी के साथ MySQL डेटाबेस तालिका में एकाधिक छवियों को कैसे सम्मिलित करें

आपकी समस्या यह पंक्ति है:

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

यह पहली प्रविष्टि पर काम करेगा, क्योंकि LAST_INSERT_ID उपयुक्त विदेशी कुंजी मान है।

लेकिन सेकंड . पर सम्मिलित करें, LAST_INSERT_ID अब आपके द्वारा डाले गए रिकॉर्ड के आईडी मान में बदल गया है (पहली प्रविष्टि)।

इसे ठीक करने के लिए, आपको LAST_INSERT_ID get प्राप्त करना होगा एक C# चर में , और फिर इसे प्रत्येक अनुवर्ती SQL कथन में पास करें (अर्थात LAST_INSERT_ID के बजाय @ForeignKeyID) )।

इसका मतलब होगा अपने पहले . को बदलना :

cmd.ExecuteNonQuery();

को:

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

जहां डाला गया आईडी एक चर है (संभावित int ) जिसे आप अपनी विधि के शीर्ष पर घोषित करते हैं।

फिर आपको बदलना होगा:

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();
    }
}

को:

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. php . का उपयोग करके ड्रॉपडाउन सूची चयन के आधार पर डेटाबेस से डेटा प्राप्त करना चाहते हैं

  2. PHP दिनांक रूपांतरण के बाद '1970-01-01' दिखा रहा है

  3. कनेक्शन बंद होने के बाद किसी भी संचालन की अनुमति नहीं है MYSQL

  4. निकटता खोज

  5. MySQL:एक ही क्वेरी में चुनें और COUNT करें