[英]Give an auto-generated ID in consecutive SQL Queries as a column value for another table
[英]Insert Auto-Generated ID Into ForeignKey Column Using Parametrized Queries
不確定如何使用SQL參數化查詢來解決此問題。 我目前可以將數據(在這種情況下為客戶)插入SQL表中,並讓數據庫生成和處理主鍵ID,而不是手動將ID與其余屬性一起插入。
我的問題是,如何使用參數化查詢將此自動生成的ID插入與其相關的外鍵列的另一個表中? 例如,如果第二張表用於預訂,並且它必須獲取進行預訂的客戶的ID值(客戶表),然后將其插入到Booking表的FK ID列中。
我已經在網上和Stack Overflow上查看了代碼,它們並不是我想要的,因為它們要么在數據庫設計器中使用SQL過程,要么處理手動插入的ID。
我寫的示例代碼:
//Insert CustomerID into TestTable
public void AddCustomerIdToForeignKeyColumnInNewTable()
{
string connectionString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
SqlConnection myConnection = new SqlConnection(connectionString);
String query;
query = "INSERT INTO TestTable VALUES (@CustomerID)";
SqlCommand dbCommand = new SqlCommand(query, myConnection);
dbCommand.Parameters.AddWithValue("@CustomerID", whateverIdValueGoesHere);
try
{
myConnection.Open();
dbCommand.ExecuteNonQuery();
myConnection.Close();
}
catch (Exception ex)
{
Exception e = ex;
myConnection.Close();
}
}
您可以使用:
Select SCOPE_IDENTITY();
在插入語句之后。
換一種說法:
query = "INSERT INTO TestTable VALUES (@CustomerID); SELECT SCOPE_IDENTITY();";
接着:
var cid= dbCommand.ExecuteScalar();
cid將包含數據庫生成的客戶ID的值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.