[英]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.