2013-02-04 48 views
1

我需要在數據庫中創建一個新員工,並且需要使用自動生成的EmployeeID。返回自動生成的列值

找不到程序需要寫入的方式,並在我的c#代碼中使用自動生成的值。

請幫我 感謝

+1

這是一個完全有效的問題,沒有理由將其關閉。 – RBarryYoung

回答

2

的SCOPE_IDENTITY()函數返回當前SQL執行範圍最近創建的IDENTITY值,並找到剛剛做了一個存儲過程中ID的推薦方法插。

​​

您可以從存儲過程返回的值以你C#客戶端:1)通過使用SELECT(如上)的數據集,或,2)作爲返回值從你的存儲過程,或3)通過將它傳回存儲過程中聲明的OUTPUT參數。

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(); 
    } 
+0

這也不錯,除了你應該使用SCOPE_IDENTITY()而不是@@ IDENTITY。 – RBarryYoung

+0

你是對的,謝謝你糾正我:) ..雖然@@ IDENTITY限於當前會話,但不限於當前範圍。 – wcraft