Skip to content

Commit 2c5723e

Browse files
committed
Improve MySqlBulkCopy documentation. For #1012
1 parent ae8c6b9 commit 2c5723e

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

docs/content/api/MySqlConnector/MySqlBulkCopyType.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,23 @@ Example code:
1717
// https://dev.mysql.com/doc/refman/8.0/en/insert-select.html
1818
var dataTable = GetDataTableFromExternalSource();
1919

20+
// open the connection
2021
using var connection = new MySqlConnection("...;AllowLoadLocalInfile=True");
2122
await connection.OpenAsync();
23+
24+
// attach an event handler to retrieve warnings/errors
25+
IReadOnlyList<MySqlError> errors = Array.Empty<MySqlError>();
26+
void InfoMessageHandler(object sender, MySqlInfoMessageEventArgs args) => errors = args.Errors;
27+
connection.InfoMessage += InfoMessageHandler;
28+
29+
// bulk copy the data
2230
var bulkCopy = new MySqlBulkCopy(connection);
2331
bulkCopy.DestinationTableName = "some_table_name";
2432
await bulkCopy.WriteToServerAsync(dataTable);
33+
34+
// check for errors
35+
connection.InfoMessage -= InfoMessageHandler;
36+
if (errors.Count != 0) { /* handle errors */ }
2537
```
2638

2739
```csharp

src/MySqlConnector/MySqlBulkCopy.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,23 @@ namespace MySqlConnector
2929
/// // https://dev.mysql.com/doc/refman/8.0/en/insert-select.html
3030
/// var dataTable = GetDataTableFromExternalSource();
3131
///
32+
/// // open the connection
3233
/// using var connection = new MySqlConnection("...;AllowLoadLocalInfile=True");
3334
/// await connection.OpenAsync();
35+
///
36+
/// // attach an event handler to retrieve warnings/errors
37+
/// IReadOnlyList&lt;MySqlError> errors = Array.Empty&lt;MySqlError>();
38+
/// void InfoMessageHandler(object sender, MySqlInfoMessageEventArgs args) => errors = args.Errors;
39+
/// connection.InfoMessage += InfoMessageHandler;
40+
///
41+
/// // bulk copy the data
3442
/// var bulkCopy = new MySqlBulkCopy(connection);
3543
/// bulkCopy.DestinationTableName = "some_table_name";
3644
/// await bulkCopy.WriteToServerAsync(dataTable);
45+
///
46+
/// // check for errors
47+
/// connection.InfoMessage -= InfoMessageHandler;
48+
/// if (errors.Count != 0) { /* handle errors */ }
3749
/// </code>
3850
/// </summary>
3951
/// <remarks><para><strong>Note:</strong> This API is a unique feature of MySqlConnector; you must

0 commit comments

Comments
 (0)