0

所以基本上,我的 asp.net Core 应用程序是一种“购物车”,它将东西从一个 sql 数据库表转移到另一个 sql 数据库表。执行此操作的部分基本上是我的“编辑”功能。

     public async Task<IActionResult> Edit(NewClass nc)
    {
        if (ModelState.IsValid)
        {
            var num = HttpContext.Request.Form["txtFirst"].ToString();
            await _db.DataBaseData.FromSqlRaw("IF NOT EXISTS (SELECT Codigo FROM Carro.dbo.Carro WHERE CODIGO= {1}) BEGIN INSERT INTO Carro.dbo.Carro SELECT * ,{0} FROM Datos.dbo.DataBaseData WHERE CODIGO= {1} END", num, nc.Codigo).ToListAsync();
            await _db.SaveChangesAsync();
            return RedirectToAction("Index");

        }
        return View(nc);
    }

问题是每当我单击完成应用程序中的功能的按钮时,我都会收到以下错误页面:错误页面

问题是,我的代码确实有效,并且该项目已添加。代码确实有效。

我该怎么做才能摆脱错误或错误页面?我正在使用 NET.Core 6.0 顺便说一句

4

1 回答 1

0

我修复了它,所以我正在回答我的问题,以防它帮助任何人。经过大量研究,我发现函数 .FromSqlRaw 用于 Select 查询。我将其更改为 .ExecuteSqlRaw 并解决了问题。我之前的线路是

await _db.DataBaseData.FromSqlRaw("IF NOT EXISTS (SELECT Codigo FROM Carro.dbo.Carro WHERE CODIGO= {1}) BEGIN INSERT INTO Carro.dbo.Carro SELECT * ,{0} FROM Datos.dbo.DataBaseData WHERE CODIGO= {1} END", num, nc.Codigo).ToListAsync();

那给了我错误。更改后的行是:

 _db.Database.ExecuteSqlRaw("IF NOT EXISTS(SELECT CODIGO FROM Carro.dbo.Carro WHERE CODIGO = {0}) BEGIN INSERT INTO Carro.dbo.Carro SELECT *, {1} FROM Datos.dbo.DataBaseData WHERE CODIGO = {0} END", nc.Codigo, num);

我希望它可以帮助某人!

于 2022-01-05T15:20:36.607 回答