我有一张桌子Student
。此表有一列ID
,它是自动递增的。我想编写一个存储过程来添加一个新学生并返回ID
。我是新手。
这是我的代码。请检查它是否错误并为我修复并告诉我如何在C#中使用它进行编码。我使用了Entity Framework 4.
@Name NVARCHAR(50),
@Birthday DATETIME,
@ID bigint OUTPUT
AS
BEGIN
SET XACT_ABORT ON
BEGIN
INSERT INTO [Student](Name, Birthday) VALUES (@Name, @Birthday);
SELECT @ID = SCOPE_IDENTITY()
END
END
答案 0 :(得分:3)
当您使用C#
时,最好能SP
代替EF4
。
使用Entity Framework,这一切都是自动完成的。
using (MyEntities context = new MyEntities())
{
var student = new Student()
{
Name = "some value",
Birthday = "some Birthday"
};
context.Students.AddObject(student);
context.SaveChanges();
int ID = student.ID; // You will get here the Auto-Incremented table ID value.
}
保存在实体框架中将自动更新“自动增量”ID列。您只需在调用.SaveChanges();
之后将其读出来编辑:
如果您在获取“自动增加”ID值时遇到任何问题,请阅读此post。
答案 1 :(得分:0)
@Name NVARCHAR(50),
@Birthday DATETIME,
@ID bigint OUTPUT
AS
BEGIN
SET XACT_ABORT ON
BEGIN
INSERT INTO [Student](Name,Birthday)
VALUES(@Name,@Birthday);
SELECT @ID = SCOPE_IDENTITY()
END
我刚在字段之间添加了逗号
答案 2 :(得分:-1)
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.aspx
这应该为您提供构建调用存储过程的C#应用程序所需的所有信息。