我怎样才能从我刚刚写入到数据库中的行检索id
?从行检索的ID我刚刚写入数据库
基本上,我在我的ASP.NET需要写两个表预订表格的函数,但是我需要什么已经写在表1中的ID,也可以储存在表2中
所以:
- 写
table 1
- 检索
id
从table 1
- 写
table 2
我怎样才能做到这一点?
问候 茶
我怎样才能从我刚刚写入到数据库中的行检索id
?从行检索的ID我刚刚写入数据库
基本上,我在我的ASP.NET需要写两个表预订表格的函数,但是我需要什么已经写在表1中的ID,也可以储存在表2中
所以:
table 1
id
从table 1
table 2
我怎样才能做到这一点?
问候 茶
在Asp.Net与SQL 2008服务器,您可以使用ExecuteScalar功能是这样的:
string query = "INSERT INTO Table1 (id_field)
OUTPUT SCOPE_IDENTITY()
VALUES (...)";
OR
string query = "INSERT INTO Table1 (...) VALUES (...); SELECT SCOPE_IDENTITY() ";
在最后一个例子,我的通知“M执行插入,然后在同一请求中一个SELECT ...
并获得身份使用:
int lastId = (int)command.ExecuteScalar();
@TeaDrinkingGeek - 是的,它会 – Blachshma
这是否取代我的cmd.ExecuteNonQuery() – TeaDrinkingGeek
我得到错误:指定的转换无效。 – TeaDrinkingGeek
如果您使用SQL服务器使用SCOPE_IDENTITY()
http://msdn.microsoft.com/en-us/library/ms190315.aspx
INSERT INTO Table1 ...
DECLARE @RecordID int = SCOPE_IDENTITY()
INSERT INTO Table2 ... VALUES (@RecordID....)
不使用存储过程,你可以附上SELECT
语句来你的SQL结尾:
cmd.CommandText = "INSERT INTO Table 1 ...... ; SELECT SCOPE_IDENTITY()"
int recordId = (int)cmd.ExecuteScalar();
怎么办瓦特/使用存储过程?只是ASP.NET代码 – TeaDrinkingGeek
@TeaDrinkingGeek更新我的回答 – Curt
我们在谈论什么数据库? – Blachshma
是否使用标识列给你列ID? –
这是一个SQL Server 2008的,但我在我的ASP.NET代码,没有存储过程使用说明书。 – TeaDrinkingGeek