[英]Inserting data from two tables into one c#
我有3張桌子。 我創建一個任務並同時上傳資源。 數據保存在兩個表中-一個用於任務信息,另一個用於資源。
我試圖將兩個表的主鍵插入第三個表。 第一個表稱為Task
,具有task_id
作為主鍵, task_name
和task_description
。 第二個是Resource
,具有resource_id
作為主鍵和resource_name
。 兩個ID都有自動遞增選項,因此當我向表中輸入數據時,我不會填寫ID。
我想將task_id
和resource_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
的列,該列引用Task
的task_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
這是引用數據的一種干凈方法
插入后,對數據運行查詢。
你應該用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.