如何在C#中传递列表对象中的值?
这也许是个简单的问题。也就是说,我有一些JSON细节,它作为一个列表出现,然后它转换为对象。现在这个对象包含2个值,因为它是一个列表。所以我想把它们输入数据库。我如何做到这一点 这是我试过的如何在C#中传递列表对象中的值?,c#,C#,这也许是个简单的问题。也就是说,我有一些JSON细节,它作为一个列表出现,然后它转换为对象。现在这个对象包含2个值,因为它是一个列表。所以我想把它们输入数据库。我如何做到这一点 这是我试过的 public IHttpActionResult PostRegister([FromBody] dynamic register) { try { Newtonsoft.Json.Linq.JArray qualificationRes = (Newtonsoft.Json
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");
}
}
公共IHttpActionResult后寄存器([FromBody]动态寄存器)
{
尝试
{
Newtonsoft.Json.Linq.JArray qualificationRes=(Newtonsoft.Json.Linq.JArray)register.qualification;
var qualification=qualificationRes.ToObject();//转换为列表对象
var sta2=QMgrt.InsertQualifications(qualification,nid);//传递列表值。
返回Ok(“成功”);
}
捕获(例外情况除外)
{
控制台写入线(例如消息);
返回正常(“失败”);
}
}
这就是我试图将其插入数据库的方式
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-quali,int-newid)//获取列表值
{
foreach(quali中的限定q)//这就是问题所在,只有一组对象被传递到数据库
{
尝试
{
var status=db.AddQualiteDetails(“插入QualiteDetails”,q.描述,q.大学,q.Date,q.Qauli,q.QualiteType,newid,q.Duration);
返回true;
}
捕获(例外)
{
返回false;
}
}
返回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;
}
public bool InsertQualifications(List-quali,int-newid)//获取列表值
{
foreach(quali中的限定q)//这就是问题所在,只有一组对象被传递到数据库
{
尝试
{
var status=db.AddQualiteDetails(“插入QualiteDetails”,q.描述,q.大学,q.Date,q.Qauli,q.QualiteType,newid,q.Duration);
返回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;
}
public bool InsertQualifications(List-quali,int-newid)//获取列表值
{
foreach(quali中的限定q)//这就是问题所在,只有一组对象被传递到数据库
{
尝试
{
var status=db.AddQualiteDetails(“插入QualiteDetails”,q.描述,q.大学,q.Date,q.Qauli,q.QualiteType,newid,q.Duration);
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;
}
}
public bool InsertQualifications(List-quali,int-newid)//获取列表值
{
foreach(quali中的限定q)//这就是问题所在,只有一组对象被传递到数据库
{
尝试
{
var status=db.AddQualiteDetails(“插入QualiteDetails”,q.描述,q.大学,q.Date,q.Qauli,q.QualiteType,newid,q.Duration);
}
捕获(例外)
{
返回false;
}
}
db.SaveChanges();
返回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;
}
}
public bool InsertQualifications(List-quali,int-newid)//获取列表值
{
foreach(quali中的限定q)//这就是问题所在,只有一组对象被传递到数据库
{
尝试
{
var status=db.AddQualiteDetails(“插入QualiteDetails”,q.描述,q.大学,q.Date,q.Qauli,q.QualiteType,newid,q.Duration);
}
捕获(例外)
{
返回false;
}
}
db.SaveChanges();
返回true;
}
}
Yup。删除return true
解决了我的问题。谢谢:)是的。删除return true
解决了我的问题。谢谢:)删除return true帮助我解决了问题。谢谢:)删除return true帮助我解决了问题。谢谢:)