Connector/Net FAQ
2046
Remember that the more information you can supply to us, the more likely it is that we can fix the
problem.
If you believe the problem to be a bug, then you must report the bug through
http://bugs.mysql.com/
.
20.2.9. Connector/Net FAQ
Questions
•
21.2.9.1: [2046]
How do I obtain the value of an auto-incremented column?
Questions and Answers
21.2.9.1: How do I obtain the value of an auto-incremented column?
When using
CommandBuilder
, setting
ReturnGeneratedIdentifiers
property to
true
no longer
works, as
CommandBuilder
does not add
last_insert_id()
by default.
CommandBuilder hooks up to the
DataAdapter.RowUpdating
event handler, which means it will
get called for every row. It examines the command object and, if it is the same referenced object, it
essentially rebuilds the object, thereby destroying your command text changes.
One approach to solving this problem is to clone the command object so you have a different actual
reference:
dataAdapter.InsertCommand = cb.GetInsertCommand().Clone()
This will work, but since the CommandBuilder is still connected to the DataAdapter, the RowUpdating
event will still fire and performance will be hit. To stop that, once all your commands have been added
you need to disconnect the CommandBuilder from the DataAdapter:
cb.DataAdapter = null;
The last requirement is to make sure the
id
that is returned by
last_insert_id()
has the correct
name. For example:
SELECT last_insert_id() AS id
A complete working example is shown here:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace GetAutoIncId
{
class Program
{
static void Main(string[] args)
{
string connStr = "server=localhost;user=root;database=TestDB;port=3306;password=******;";
MySqlConnection conn = new MySqlConnection(connStr);
try
{
Console.WriteLine("Connecting to MySQL...");
conn.Open();
string sql = "SELECT * FROM TestTable";
MySqlDataAdapter da = new MySqlDataAdapter(sql, conn);
Содержание 5.0
Страница 1: ...MySQL 5 0 Reference Manual ...
Страница 18: ...xviii ...
Страница 60: ...40 ...
Страница 396: ...376 ...
Страница 578: ...558 ...
Страница 636: ...616 ...
Страница 844: ...824 ...
Страница 1234: ...1214 ...
Страница 1426: ...MySQL Proxy Scripting 1406 The following diagram shows an overview of the classes exposed by MySQL Proxy ...
Страница 1427: ...MySQL Proxy Scripting 1407 ...
Страница 1734: ...1714 ...
Страница 1752: ...1732 ...
Страница 1783: ...Configuring Connector ODBC 1763 ...
Страница 1793: ...Connector ODBC Examples 1773 ...
Страница 1839: ...Connector Net Installation 1819 2 You must choose the type of installation to perform ...
Страница 1842: ...Connector Net Installation 1822 5 Once the installation has been completed click Finish to exit the installer ...
Страница 1864: ...Connector Net Visual Studio Integration 1844 Figure 20 24 Debug Stepping Figure 20 25 Function Stepping 1 of 2 ...
Страница 2850: ...2830 ...
Страница 2854: ...2834 ...
Страница 2928: ...2908 ...
Страница 3000: ...2980 ...
Страница 3122: ...3102 ...
Страница 3126: ...3106 ...
Страница 3174: ...3154 ...
Страница 3232: ...3212 ...