[英]Access a list in a class then insert into database
我在訪問 class 中的列表時遇到問題。
下面是我創建的類。 在 class 基准中,有一個名為位置的列表。
public class Location
{
public string location { get; set; }
public string remarks { get; set; }
public string deliverydate { get; set; }
public string pickupdate { get; set; }
}
public class Datum
{
public string tracking_number { get; set; }
public string pickup_place { get; set; }
public string delivery_place { get; set; }
public string tel_no { get; set; }
public string status { get; set; }
public DateTime lastupdate_time { get; set; }
public List<Location> Location { get; set; }
}
public class Root
{
public List<Datum> data { get; set; }
}
我想使用 List 將值插入數據庫。 但是下面的代碼給出了一個錯誤:
“type”不包含“name”的定義,並且找不到接受“type”類型的第一個參數的可訪問擴展方法“name”(您是否缺少 using 指令或程序集引用?)。 在線
foreach ( var p in data.Root)
{
string tracking_number = p.tracking_number;
string pickup_place = p.pickup_place;
string delivery_place = p.delivery_place;
string tel_no = p.tel_no ;
string status = p.status ;
datetime lastupdate_time = p.lastupdate_time ;
// start from this line, gives CS1061 error
string location = p.Location.location ;
string remarks = p.Location.remarks ;
string deliverydate = p.Location.deliverydate;
string pickupdate = p.Location.pickupdate;
query = "INSERT INTO Tracking (tracking_number, pickup_place, delivery_place, tel_no, status,
lastupdate_time, location, remarks, deliverydate , pickupdate) VALUES (tracking_number,
pickup_place, delivery_place, tel_no, status, lastupdate_time, location, remarks, deliverydate ,
pickupdate);
}
我怎么解決這個問題? 我試圖尋找解決方案,但沒有任何效果。
請嘗試以下代碼,您需要另一個位置循環
foreach (var p in data.Root)
{
string tracking_number = p.tracking_number;
string pickup_place = p.pickup_place;
string delivery_place = p.delivery_place;
string tel_no = p.tel_no;
string status = p.status;
DateTime lastupdate_time = p.lastupdate_time;
// Other information will be same for the all location
foreach (var item in p.Location)
{
string location = item.location;
string remarks = item.remarks;
string deliverydate = item.deliverydate;
string pickupdate = item.pickupdate;
query = "INSERT INTO Tracking (tracking_number, pickup_place, delivery_place, tel_no, status,
lastupdate_time, location, remarks, deliverydate , pickupdate) VALUES(tracking_number,
pickup_place, delivery_place, tel_no, status, lastupdate_time, location, remarks, deliverydate,
pickupdate);
}
}
建議
Var json = Json.Serialize(rootObject)
你的過程 header 應該是這樣的
Create proc Usp_InsertDatum (@json nvarchar(max))
在 C#
command.Parameters.AddWithValue("@json", json)
這是 JSON 和 SQL 服務器的 SQL 小屋鏈接。 https://www.sqlshack.com/how-to-parse-json-in-sql-server/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.