簡體   English   中英

使用參數化查詢將自動生成的ID插入ForeignKey列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM