簡體   English   中英

數據庫查詢僅返回數據庫的第一個元素作為所有相同的實例,在 ASP.NET MVC Core 6

[英]Database query returning only the first element of the data base as the same instance for all, in ASP.NET MVC Core 6

我遇到了一些麻煩,無法弄清楚為什么我的 sql 數據庫返回第一個數據條目作為所有其他條目。這是我從名為 HealthDataFuture 的表中獲取所有數據庫表條目的方法

[HttpPost]
        public IActionResult AjaxMethod(string id)
        {
            List<object> chartData = new List<object>();
            chartData.Add(new object[]
                            {
                            "Months", "SOFAS"
                            });
            //FOR SOME REASON IT KEEPS READING THE FIRST DATABASE ENTRY ONLY SO THERE ALL THE ENTRIES ARE THE SAME VALUE
            
            foreach (HealthDataFuture data in _db.HealthDataFuture)
            {
                if (data.id == id)
                {
                    chartData.Add(new object[]
                        {
                            data.Month, data.Sofas
                        });
                }
            }

            return Json(chartData);
        }

這是我的模型

這是我的數據庫表條目,當我查詢所有條目時,它會像所有其他條目一樣返回第一個條目,它們具有相同的 ID,因為我想返回所有條目,然后返回圖表

這是我的數據庫表條目,它也像所有其他條目一樣返回第一個條目

這是我不斷回來的結果

這是我不斷回來的結果

我也嘗試過這種獲取數據的方式,但這是同樣的問題

------編輯 ----- 問題已解決原來我的 MYSQL 表 model 沒有正確創建,因為沒有主鍵也沒有外鍵

最好不要共享圖像,而是使用正確的標簽進行編碼。 使用代碼可以幫助其他用戶和所有社區,例如,它可以使您的問題可搜索。

無論如何你可以嘗試這樣做:

if (!string.IsNullOrEmpty(id)){
    List<HealthDataFuture> DataList = _db.HealthDataFuture.Where(x => h.Id == id).ToList();
    return View(id);
}
return RedirectToAction("Index");

我對您的代碼也有一些疑問:

  1. 它應該做什么?
  2. DataList 就像來自 db 的 select 查詢,但沒有人使用 DataList。 為什么?

您提供的詳細信息越多,我們為您提供的幫助信息就越多。

評論后編輯:

如果你想從數據庫中刪除數據,你應該使用 saveChanges。 例如,如果你想刪除所有 id 不是“1”的行,你可以嘗試:

if (!string.IsNullOrEmpty(id)){
    _db.HealthDataFuture.RemoveRange(_db.HealthDataFuture.Where(x => h.Id != id));
    _db.SaveChanges();
    return View(id);
}
return RedirectToAction("Index");

您還可以閱讀有關以異步方式訪問數據庫的內容,推薦它並且性能更好: https://learn.microsoft.com/it-it/ef/core/miscellaneous/async

暫無
暫無

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

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