我需要在数据库中创建一个新员工,并且需要使用自动生成的EmployeeID。
无法找到需要编写过程的方法,并在我的c#代码中使用自动生成的值。
请帮帮我 感谢
答案 0 :(得分:2)
SCOPE_IDENTITY()函数返回当前SQL执行范围中最近创建的Identity值,并且是在刚刚执行INSERT的存储过程中查找ID的推荐方法。
INSERT INTO YourTable(col1, col2) VALUES "abc", "xyz";
SELECT SCOPE_IDENTITY();
您可以将存储过程中的值返回给C#client 1)作为数据集使用SELECT(如上所述),或者2)作为存储过程的RETURN值,或者3)将其传回通过在您的存储过程中声明的OUTPUT参数。
答案 1 :(得分:1)
喜欢这个:
using (var connection = new SqlCeConnection(Settings.Default.Database1ConnectionString))
using (var command = connection.CreateCommand())
{
connection.Open();
command.CommandText = @"
INSERT Test (Name)
VALUES (@TestName)
";
command.Parameters.AddWithValue("TestName", "SomeName");
command.ExecuteNonQuery();
command.CommandText = "SELECT SCOPE_IDENTITY()";
int id = command.ExecuteScalar();
}