簡體   English   中英

將兩個表中的數據插入到一個C#中

[英]Inserting data from two tables into one c#

我有3張桌子。 我創建一個任務並同時上傳資源。 數據保存在兩個表中-一個用於任務信息,另一個用於資源。

我試圖將兩個表的主鍵插入第三個表。 第一個表稱為Task ,具有task_id作為主鍵, task_nametask_description 第二個是Resource ,具有resource_id作為主鍵和resource_name 兩個ID都有自動遞增選項,因此當我向表中輸入數據時,我不會填寫ID。

我想將task_idresource_id插入到名為Task_resource的第三個表中。 它具有主鍵task_resource_id (同樣具有自動遞增選項)。

問題是怎么辦,因為我不知道身份證?

這樣做的原因是,一個任務可以擁有許多資源,在第三個表中,我可以將它們組合起來,從而進行搜索(例如, SELECT data from the other 2 tables WHERE task_id=1 )。

我有一個asp.net Web應用程序和一個mssql數據庫。 我用c#。

我知道一個可能的解決方案可能是在Resource表中插入一個名為task_id的列,該列引用Tasktask_id

但是又一次,由於我不知道該如何插入該id?

在第一個表上進行插入,然后從查詢中返回scope_identity()。 然后,當您插入第二張表時,您具有ID嗎? 或者,如果您使用的是LINQ

//create the object
Task task = new Task{

task_name = src.taskName,
task_description = src.taskDescription

}

context.Tasks.InsertOnSubmit(task);
context.SubmitChanges();

//do second insert
Int32 taskIDFromLastInsert = task.task_id;

Resource res = new Resource{

resource_name = scr.ResourceName,
task_id = taskIDFromLastInsert // optional if you want to change your structure

}

context.Resources.InsertOnSubmit(res); context.SubmitChanges();

Int32 resourceIDFromLastInsert = resource_id;

如果您確實要插入第三張表,則現在擁有兩個ID

這是引用數據的一種干凈方法

插入后,對數據運行查詢。

你應該用

設置IDENTITY_INSERT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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