[英]How to pass values that are in a List Object in C#?
这也许很简单。 那就是我有一些JSON详细信息,它以列表的形式出现,然后转换为对象。 所以现在该对象包含2个值,因为它是一个列表。 所以我想将它们传递到数据库中。 我该如何实现。
这是我尝试过的。
public IHttpActionResult PostRegister([FromBody] dynamic register)
{
try
{
Newtonsoft.Json.Linq.JArray qualificationRes = (Newtonsoft.Json.Linq.JArray)register.qualification;
var qualification = qualificationRes.ToObject<List<Qualification>>(); //conversion to the List object
var sta2 = QMgrt.InsertQualifications(qualification,nid); //passing of List value.
return Ok("success");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return Ok("fail");
}
}
这就是我试图将其插入数据库的方式
public bool InsertQualifications(List<Qualification> quali,int newid) //Getting the List values
{
foreach (Qualification q in quali) // This is where the issues comes only one set of object is passed to the database
{
try
{
var status = db.AddQualiDetails("Insert_QualiDetails", q.Description, q.University, q.Date_of_award, q.Qauli_id, q.Quali_type, newid, q.Duration);
return true;
}
catch (Exception)
{
return false;
}
}
return true;
}
如屏幕截图所示,有两组对象。 如何将所有这些都传递到数据库中。 帮助将不胜感激
我不知道我是否理解正确,但这可能是问题所在:
public bool InsertQualifications(List<Qualification> quali,int newid) //Getting the List values
{
foreach (Qualification q in quali) // This is where the issues comes only one set of object is passed to the database
{
try
{
var status = db.AddQualiDetails("Insert_QualiDetails", q.Description, q.University, q.Date_of_award, q.Qauli_id, q.Quali_type, newid, q.Duration);
return true; <<<<<-------
}
catch (Exception)
{
return false;
}
}
return true;
}
您将一个List条目插入数据库,并return true;
否则, return true;
使用return
,退出方法并停止foreach
。 关于此,您的代码仅添加列表的一个条目。 尝试删除此return true;
还要检查插入期间发生的任何异常。
据我所知,您没有调用db.SaveChanges()
。 SaveChanges
会将您的更改提交到数据库。 也有return true;
在您的循环中,它打破了循环。
这是将数据保存到数据库的正确代码:
public bool InsertQualifications(List<Qualification> quali,int newid) //Getting the List values
{
foreach (Qualification q in quali) // This is where the issues comes only one set of object is passed to the database
{
try
{
var status = db.AddQualiDetails("Insert_QualiDetails", q.Description, q.University, q.Date_of_award, q.Qauli_id, q.Quali_type, newid, q.Duration);
}
catch (Exception)
{
return false;
}
}
db.SaveChanges();
return true;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.