我正在嘗試在我的角度應用程式中創建一個圖表。為此,我想在我的 .Net Web API 中按如下方式傳遞資料集。
但在我的代碼中,它傳遞資料集如下
[{"Column1":1,"_Month":"January","SumOfMonth":-14900.40,"NoOfOutlets":11},{"Column1":2,"_Month":"February","SumOfMonth":-17856.00,"NoOfOutlets":2},{"Column1":3,"_Month":"March","SumOfMonth":-5312.00,"NoOfOutlets":4},{"Column1":4,"_Month":"April","SumOfMonth":-22103.13,"NoOfOutlets":15},{"Column1":6,"_Month":"June","SumOfMonth":-16014.72,"NoOfOutlets":5},{"Column1":7,"_Month":"July","SumOfMonth":-63251.93,"NoOfOutlets":46}
現在我想將我的資料集轉換為上述格式來創建圖表。
我的控制器
public class MonthSelloutController : ControllerBase
{
private readonly VantageContext _context;
public MonthSelloutController(VantageContext context)
{
_context = context;
}
//GET: api/AllSellOut
[HttpGet]
public ActionResult<string> Getset(string Year)
{
DataTable dt = new MonthSelloutMgt().Monthsellout(Year, _context);
string json = JsonConvert.SerializeObject(dt);
return json;
}
}
我的提單
public DataTable Monthsellout(string Year, VantageContext _context)
{
DataTable dt = new DataTable();
try
{
string conn = _context.Database.GetDbConnection().ConnectionString;
using (SqlConnection con = new SqlConnection(conn))
{
con.Open();
SqlCommand cmd = new SqlCommand("D_MonthSellOut", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Year", Year));
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
con.Close();
}
}
catch (Exception ex)
{
ex.ToString();
}
return dt;
}
如上圖所示,我可以做些什么來轉換我的資料集。任何幫助深表感謝。
我的存盤程序的結果

uj5u.com熱心網友回復:
因為您想為您的 JSON 字串獲取自定義架構,您可以嘗試撰寫一個類來攜帶您的資料,DataTable如下所示
public class ViewModel
{
public List<List<object>> SumOfMonth { get; set; } = new List<List<object>>();
public List<List<object>> NoOutlets { get; set; } = new List<List<object>>();
}
然后我們可以使用foreachDataTable 中的迭代器資料并將資料填充到ViewModel
[HttpGet]
public ActionResult<string> Getset(string Year)
{
DataTable dt = new MonthSelloutMgt().Monthsellout(Year, _context);
ViewModel result = new ViewModel();
foreach(DataRow item in dt.Rows){
result.SumOfMonth.Add(new List<object>(){
(decimal)item["SumOfMonth"],
item["_Month"].ToString()
});
result.NoOutlets.Add(new List<object>(){
(decimal)item["NoOfOutlets"],
item["_Month"].ToString()
});
}
string json = JsonConvert.SerializeObject(result);
return json;
}
我會使用Sqldatareader來讀取資料結果,而不是DataTable因為 Sqldatareader 可能會提供更高的性能DataTable
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457466.html
標籤:C# 。网 asp.net-web-api 网页API
