[英]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");
我對您的代碼也有一些疑問:
您提供的詳細信息越多,我們為您提供的幫助信息就越多。
評論后編輯:
如果你想從數據庫中刪除數據,你應該使用 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.