如何从 C# 中的数据库中获取最后一个 id
Posted
技术标签:
【中文标题】如何从 C# 中的数据库中获取最后一个 id【英文标题】:How can i get the last id from the database in C# 【发布时间】:2019-12-24 13:10:45 【问题描述】:我曾尝试使用 SELECT
查询从数据库中获取最后一个 id,即 SELECT LAST_INSERT_id FROM studentdetails
,但它对我不起作用。
我真的需要帮助!
请问我可以使用什么查询从数据库中获取最后一个 id?
string me = dtba.ConnectionString();
SqlConnection connection = new SqlConnection(me);
string selectquery = "SELECT LAST_INSERT_id FROM studentdetails";
SqlCommand selectcmd = new SqlCommand(selectquery, connection);
selectcmd.Parameters.AddWithValue("@id", registrationNo.Text);
try
connection.Open();
SqlDataReader reader = selectcmd.ExecuteReader();
if (reader.Read())
registrationNo.Text = reader["id"].ToString();
if (registrationNo.Text == "")
MessageBox.Show("SORRY ID HAS NOT BEEN READ");
else
MessageBox.Show("REGISTRATION NUMBER IS CORRECT");
catch (Exception ex)
MessageBox.Show(ex.Message);
finally
connection.Close();
【问题讨论】:
看看这个***.com/questions/1920558/…和***.com/questions/10999396/… 相关 - 不要使用addwithvalue 【参考方案1】:MySQL
是:
SELECT LAST_INSERT_ID() AS id FROM studentdetails
而不是
SELECT LAST_INSERT_id FROM studentdetails
这是因为LAST_INSERT_ID
是一个函数,而不是列名。这是假设您使用的是 mysql。
SQL 服务器
如果您使用的是 SQL Server,请使用:
SELECT SCOPE_IDENTITY() AS id FROM studentdetails
请注意,SCOPE_IDENTITY()
函数只能在 INSERT
之后使用,并且仅当您插入行的表具有 IDENTITY
(自动递增)列时才有效。
【讨论】:
它的工作方式,但它显示异常:“'LAST_INSERT_ID' 不是公认的内置函数名称。” 这真的是 MySQL 吗? SQL Server,是吗? “Sql”是一个模棱两可的术语。请将产品称为“MySql”或“Sql Server”或不太含糊的“Microsoft Sql Server”。使用明确的术语将极大地帮助您的发展之路。 @marc_s 的观察对于我将其复制到答案中非常重要。以上是关于如何从 C# 中的数据库中获取最后一个 id的主要内容,如果未能解决你的问题,请参考以下文章
Datatable C# - 如何根据 ID 从一个表中获取详细记录及其关联的另一表中的子记录