天天看點

c# mysql 插入傳回id_在C#中,mysql插入一條資料時,怎麼同時把這條資料的主鍵傳回?...

展開全部

可以嘗試使用  last_insert_id()  來擷取一下看看。

下面是 僅僅在 mysql 下面的測試例子:

mysql> CREATE TABLE test_create_tab2 (

->   id   INT  AUTO_INCREMENT,

->   val  VARCHAR(10),

->   PRIMARY KEY (id)

-> );

Query OK, 0 rows affected (0.09 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id');

Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;

+----+

|32313133353236313431303231363533e58685e5aeb931333332616435 id |

+----+

|  1 |

+----+

1 row in set (0.00 sec)

mysql> INSERT INTO test_create_tab2(val) VALUES ('NO id 2');

Query OK, 1 row affected (0.03 sec)

mysql> select last_insert_id() as id;

+----+

| id |

+----+

|  2 |

+----+

1 row in set (0.00 sec)

mysql> select * from test_create_tab2;

+----+---------+

| id | val     |

+----+---------+

|  1 | NO id   |

|  2 | NO id 2 |

+----+---------+

2 rows in set (0.00 sec)

C# 調用  MySql,  要同時完成  insert ...   與  select  last_insert_id()

這個我沒有測試過。

C# 調用  SQL Server 的, 我倒是測試過的。

在 C# 中, 可以通過下面的方式, 一次執行2行 SQL 語句, 來完成插入并擷取最新ID 的處理邏輯.

/// 需要執行的 SQL 語句

/// 需要注意的是

/// 這裡實際上定義了2條語句

/// 一條是 INSERT

/// 一條是 SELECT SCOPE_IDENTITY()

private const String INSERT_SQL =

@"INSERT INTO test_SCOPE_IDENTITY (val)

VALUES (@val)

SELECT SCOPE_IDENTITY()";