簡體   English   中英

如何使用.NET Framework將數據添加到SQL Server中另一個表的列中?

[英]How do I add data to column from another table in a SQL Server using .NET Framework?

我的SQL Server中有2個表。 他們具有外鍵關系。 我現在想用索引將新記錄添加到表中。 為此,我要使用主鍵的ID。 我不知道如何在C#中編寫語句以將此ID添加到記錄中。

我已經嘗試過一些東西,但是因為我是這個主題的新手,所以我對它沒有多大興趣^^

例如

ArticleId = db.TestArtikel.Where(x => x.Name == "test1")

public static void AnotherFunction()
{
    using (DbEntities db = new DbEntities())
    {
         db.TestProduct.Add(new TestProduct()
            {
                ProductId = Guid.NewGuid(),
                Price = 10,
                DeliveryDate = DateTime.Now,
                ArticleId = 
            });

         db.SaveChanges();
     }
}

當我在ArticleId的代碼上方使用一行時,它會引發錯誤:

無法將類型'System.Linq.IQueryable'隱式轉換為'System.Guid'

您只需要使用以下語句編輯第一個查詢,然后在添加過程中使用ArticleId。

Article = db.TestArtikel.Where(x => x.Name == "test1").SingleOrDefault();


public static void AnotherFunction()
{
 using (DbEntities db = new DbEntities())
 {
     db.TestProduct.Add(new TestProduct()
        {
            ProductId = Guid.NewGuid(),
            Price = 10,
            DeliveryDate = DateTime.Now,
            ArticleId = Article.ArticleId
        });

     db.SaveChanges();
  }
}

您應該注意的一點是,Article可能為空,以防止您最好使用該異常

Article = db.TestArtikel.Where(x => x.Name == "test1").Single();

或在添加之前編寫驗證語句:

if(Article == null)  //do somthing else 

您的Where子句不知道它返回多少項目。 嘗試這個;

ArticleId = db.TestArtikel.Where(x => x.Name == "test1").FirstOrDefault();

要么

ArticleId = db.TestArtikel.Where(x => x.Name == "test1").SingleOrDefault();

這取決於您的目的或數據。

暫無
暫無

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

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