sql >> Database >  >> RDS >> Mysql

Hoe maak ik een veilige query voor het uitvoeren van een bulkinvoeging in MySQL met MySQLCommand in C# zonder een opgeslagen proces te gebruiken?

const string QUERY = "INSERT INTO contacts (first_name,last_name) VALUES" + 
                      BuildQuery(c, contacts);

public string BuildQuery(MySQLCommand c, IEnumerable<contact> contacts)
{
    List<string> values = new List<string>();
    string query = null;
    int i = 0;
    foreach (var contact in contacts)
    {
       i++;
       query += "(@firstName" + i + ", @lastName" + i + ")";
       c.Parameters.AddWithValue("@firstName" + i, contact.first_name);
       c.Parameters.AddWithValue("@lastName" + i, contact.last_name);

       if(i < contacts.Count) 
          query += ",";
    }

    return query
}

U kunt een relevante thread hier !. Ik moet iets triviaals hebben gemist, maar dat is triviaal voor u om op te lossen. Natuurlijk weet je wat er gebeurt als contacts heeft geen elementen. Ik zie niet meer randgevallen. Trouwens, let wel, er is een limiet aan het aantal van dergelijke parameters dat u kunt toevoegen, afhankelijk van de maximaal toegestane pakketgrootte van mysql. U kunt het wijzigen of ervoor zorgen dat u die limiet niet overschrijdt. Proost! :)



  1. SQL Server CRUD-bewerkingen

  2. Programmatisch een database maken in SQL Server

  3. 'Relatie bestaat niet'-fout na overzetten naar PostgreSQL

  4. JQuery KeyUp Live zoeken. Hoe?