sql >> データベース >  >> RDS >> Mysql

ストアドプロシージャを使用せずに、C#でMySQLCommandを使用してMySQLで一括挿入を実行するための安全なクエリを作成するにはどうすればよいですか?

    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. MySQL5.6DATETIMEはミリ秒/マイクロ秒を受け入れません

    2. 避けるべき5つのデータベース設計の間違い

    3. varcharとnvarcharの違いは何ですか?

    4. より大きなSQLファイルをMySQLにインポートする