Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да създам безопасна заявка за извършване на групово вмъкване в MySQL, използвайки MySQLCommand в C#, без да използвам съхранена процедура?

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
}

Можете да видите съответна нишка тук !. Сигурно съм пропуснал нещо тривиално, но това е тривиално, за да го поправите. Разбира се, знаете какво се случва, когато contacts няма елементи. Не виждам повече крайни случаи. Между другото, имайте предвид, че има ограничение за това колко такива параметри можете да добавите в зависимост от максималния разрешен размер на пакета на mysql. Можете да го промените или да се погрижите да не надвишавате това ограничение. Наздраве! :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разлика в MySQL JOIN срещу LEFT JOIN

  2. Как да запишете фигура на наслагване на карти на Google в базата данни?

  3. Къде мога да изтегля примерна база данни Mysql?

  4. Проблем при запазването на java.util.Date в MySql с помощта на Hibernate

  5. Извличане на групи от таблици много към много