Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何同时向sql添加两个产品_Sql Server_Asp.net Mvc - Fatal编程技术网

Sql server 如何同时向sql添加两个产品

Sql server 如何同时向sql添加两个产品,sql-server,asp.net-mvc,Sql Server,Asp.net Mvc,我有两张桌子: 表订单:i订单、产品ID、数量、价格 表orderdetails:ID、ShipName、ShipMobile、ShipAddress、ShipEmail、DateOrder 我的订单详细信息DAO(作为型号): 我的订单: raovatmuabanthucungenties re=null; 公共秩序 { re=新的Raovatmuabanthucungenties(); } 公共布尔插入(订单) { 尝试 { 关于订单。添加(订单); re.SaveChanges()

我有两张桌子:

订单:
i订单、产品ID、数量、价格

orderdetails:
ID、ShipName、ShipMobile、ShipAddress、ShipEmail、DateOrder

  • 我的订单详细信息DAO(作为型号):

  • 我的订单:

raovatmuabanthucungenties re=null;
公共秩序
{
re=新的Raovatmuabanthucungenties();
}
公共布尔插入(订单)
{
尝试
{
关于订单。添加(订单);
re.SaveChanges();
返回true;
}
抓住
{
返回false;
}

}
实际上在下面提到的行中:

order.IDOrder = id;
您正试图将重复项插入到主键字段中(如您在消息中所传达的),因此第一次插入值成功,第二次插入值失败,因为不允许重复主键

另外,re.SaveChanges();正在向数据库写入操作添加一个over head。最好创建一个IEnumerable或“order”列表,并将其传递给Insert(),以便一次保存所有内容

更改此项:

    try
    {
        var id = new OrderDetailsDao().Insert(detail);
        var cart = (List<CartItem>)Session[CartSession];
        var orderDao = new OrderDao();
        decimal total = 0;
        foreach (var item in cart)
        {
            var order = new order();
            order.ProductId= item.Product.ProductId;
            order.IDOrder = id;
            order.Price = item.Product.Price;
            order.quantity = item.quantity;
            orderDao.Insert(order);
        }
    }
  public bool Insert(order order)
  {
    try
    {
        re.order.Add(order);
        re.SaveChanges();
        return true;
    }
    catch
    {
        return false;
    }
}
致:

public bool Insert(列表顺序)
{
foreach(订单中的var订单)
{
关于订单。添加(订单);
}  
尝试
{               
re.SaveChanges();
返回true;
}
抓住
{
返回false;
}
}

请在您的问题中加入a,重点是最小值。另外,请用英语写你的代码。你可能知道什么是马桑法姆或苏隆,但对很多说英语的人来说,这只是“随机的”。@DavidStockinger你真的需要知道这些属性是什么吗?它们只是该对象的属性,不太可能与当前的问题有任何关系。@SeanLange用一种一致的语言写作在几乎任何社区都被认为是良好的形式,因为大多数语言关键字也是英语。我并不想贬低Wiliam——在创建MCVE时,这只是一个友好的建议。@SeanLange我要求他们更改MCVE的代码,其目标应该是尽可能地最小化。像“
object.Property1
”这样简单的东西会显示有一个属性,但不是示例所需的每个属性。我的意思是,一个叫做
raovatmuabanthucungenties()
的函数(?)对任何一个说英语的人来说都是不言而喻的。我觉得这场讨论似乎正在慢慢偏离主题。这是Wiliam的选择,他们如何命名他们的财产或如何编写他们的MCVE。我的意思是,纯英语的MCVE可能会吸引更多/更好的答案。我添加了EntityFramework名称:Raovatmuabanthucungenties。。。很抱歉。你能告诉我更多细节吗,我只剩下3个小时了(截止日期):(我会帮你的兄弟…请给我5分钟。来处理你的代码。Thnk you much hi running=)试着调试你的代码,告诉我代码在哪里卡住了。我敢肯定,您在数据库中插入了“错误”的内容。
    try
    {
        var id = new OrderDetailsDao().Insert(detail);
        var cart = (List<CartItem>)Session[CartSession];
        var orderDao = new OrderDao();
        decimal total = 0;
        List<order> orders = new List<order>();
        foreach (var item in cart)
        {        
            var order = new order();            
            order.ProductId= item.Product.ProductId;
            order.IDOrder = id;
            order.Price = item.Product.Price;
            order.quantity = item.quantity;
            orders.Add(order);
        }
        orderDao.Insert(orders);
    }
  public bool Insert(order order)
  {
    try
    {
        re.order.Add(order);
        re.SaveChanges();
        return true;
    }
    catch
    {
        return false;
    }
}
public bool Insert(List<order> orders)
{
    foreach(var order in orders)
    {
         re.order.Add(order);
    }  
    try
    {               
        re.SaveChanges();
        return true;
    }
    catch
    {
        return false;
    }
}