यहाँ मेरी "एकाधिक प्रविष्टियाँ" -कोड है।
100k पंक्तियों को सम्मिलित करने में 40 सेकंड के बजाय केवल 3 सेकंड लगा !!
public static void BulkToMySQL()
{
string ConnectionString = "server=192.168.1xxx";
StringBuilder sCommand = new StringBuilder("INSERT INTO User (FirstName, LastName) VALUES ");
using (MySqlConnection mConnection = new MySqlConnection(ConnectionString))
{
List<string> Rows = new List<string>();
for (int i = 0; i < 100000; i++)
{
Rows.Add(string.Format("('{0}','{1}')", MySqlHelper.EscapeString("test"), MySqlHelper.EscapeString("test")));
}
sCommand.Append(string.Join(",", Rows));
sCommand.Append(";");
mConnection.Open();
using (MySqlCommand myCmd = new MySqlCommand(sCommand.ToString(), mConnection))
{
myCmd.CommandType = CommandType.Text;
myCmd.ExecuteNonQuery();
}
}
}
बनाया गया SQL-कथन इस तरह दिखता है:
INSERT INTO User (FirstName, LastName) VALUES ('test','test'),('test','test'),... ;
अपडेट करें :धन्यवाद सलमान ए मैंने MySQLHelper.EscapeString
जोड़ा है कोड इंजेक्शन से बचने के लिए जो आंतरिक रूप से तब उपयोग किया जाता है जब आप पैरामीटर का उपयोग करते हैं।