C# 调用将模型列表作为web表单参数的web服务
我的服务看起来像这样C# 调用将模型列表作为web表单参数的web服务,c#,C#,我的服务看起来像这样 [WebMethod] public bool insertRecord(List<People> stu) { using (LearnershipDBEntities dn = new LearnershipDBEntities()) { Person obj = new Person(); foreach (var item in stu)
[WebMethod]
public bool insertRecord(List<People> stu)
{
using (LearnershipDBEntities dn = new LearnershipDBEntities())
{
Person obj = new Person();
foreach (var item in stu)
{
obj.personID = item.personId;
obj.dateOfBirth = item.dob;
obj.idNumber = item.idNumber;
obj.name = item.name;
obj.title = item.title;
}
dn.People.Add(obj);
dn.SaveChanges();
}
return true;
}
[WebMethod]
公共布尔插入记录(列表stu)
{
使用(LearnershipDBEntities dn=new LearnershipDBEntities())
{
人员对象=新人员();
foreach(stu中的var项目)
{
obj.personID=item.personID;
obj.dateOfBirth=item.dob;
obj.idNumber=item.idNumber;
obj.name=item.name;
obj.title=item.title;
}
dn.People.Add(obj);
dn.SaveChanges();
}
返回true;
}
我的表格有这个代码
private void button2_Click(object sender, EventArgs e)
{
try
{
ToDbXml.Service2 nb = new ToDbXml.Service2();
Service2Client s = new Service2Client();
People dto = new People();
for (int i = 0; i <= 4; i++)
{
dto.name = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[0].Value.ToString()) ? string.Empty : dataGridView1.Rows[i].Cells[0].Value.ToString();
dto.dob = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[1].Value.ToString()) ? (DateTime)System.Data.SqlTypes.SqlDateTime.Null : DateTime.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString());
dto.title = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[2].Value.ToString()) ? string.Empty : dataGridView1.Rows[i].Cells[2].Value.ToString();
dto.idNumber = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[3].Value.ToString()) ? string.Empty : dataGridView1.Rows[i].Cells[3].Value.ToString();
}
s.insertRecord(dto);
MessageBox.Show("Values Inserted Succesfully");
}
catch (SqlException ex)
{
MessageBox.Show( ex.Message);
}
}
private void按钮2\u单击(对象发送者,事件参数e)
{
尝试
{
ToDbXml.Service2 nb=新的ToDbXml.Service2();
Service2Client s=新的Service2Client();
人物dto=新人();
对于(int i=0;i您需要构建一个人员列表并将其传递给webservice方法。因此,我建议您修改web服务的源代码,如下所示:
[WebMethod]
public bool insertRecord(List<People> stu)
{
using (LearnershipDBEntities dn = new LearnershipDBEntities())
{
Person obj = new Person();
foreach (var item in stu)
{
obj.personID = item.personId;
obj.dateOfBirth = item.dob;
obj.idNumber = item.idNumber;
obj.name = item.name;
obj.title = item.title;
dn.People.Add(obj);
}
dn.SaveChanges();
}
return true;
}
private void button2_Click(object sender, EventArgs e)
{
try
{
ToDbXml.Service2 nb = new ToDbXml.Service2();
Service2Client s = new Service2Client();
List<People> listOfPeople = new List<People>();
for (int i = 0; i <= 4; i++)
{
listOfPeople.add (
new People()
{
name = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[0].Value.ToString()) ? string.Empty : dataGridView1.Rows[i].Cells[0].Value.ToString(),
dob = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[1].Value.ToString()) ? (DateTime)System.Data.SqlTypes.SqlDateTime.Null : DateTime.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString()),
title = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[2].Value.ToString()) ? string.Empty : dataGridView1.Rows[i].Cells[2].Value.ToString(),
idNumber = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[3].Value.ToString()) ? string.Empty : dataGridView1.Rows[i].Cells[3].Value.ToString()
});
}
s.insertRecord(listOfPeople);
MessageBox.Show("Values Inserted Succesfully");
}
catch (SqlException ex)
{
MessageBox.Show( ex.Message);
}
}
[WebMethod]
公共布尔插入记录(列表stu)
{
使用(LearnershipDBEntities dn=new LearnershipDBEntities())
{
人员对象=新人员();
foreach(stu中的var项目)
{
obj.personID=item.personID;
obj.dateOfBirth=item.dob;
obj.idNumber=item.idNumber;
obj.name=item.name;
obj.title=item.title;
dn.People.Add(obj);
}
dn.SaveChanges();
}
返回true;
}
事件按钮处理程序如下所示:
[WebMethod]
public bool insertRecord(List<People> stu)
{
using (LearnershipDBEntities dn = new LearnershipDBEntities())
{
Person obj = new Person();
foreach (var item in stu)
{
obj.personID = item.personId;
obj.dateOfBirth = item.dob;
obj.idNumber = item.idNumber;
obj.name = item.name;
obj.title = item.title;
dn.People.Add(obj);
}
dn.SaveChanges();
}
return true;
}
private void button2_Click(object sender, EventArgs e)
{
try
{
ToDbXml.Service2 nb = new ToDbXml.Service2();
Service2Client s = new Service2Client();
List<People> listOfPeople = new List<People>();
for (int i = 0; i <= 4; i++)
{
listOfPeople.add (
new People()
{
name = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[0].Value.ToString()) ? string.Empty : dataGridView1.Rows[i].Cells[0].Value.ToString(),
dob = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[1].Value.ToString()) ? (DateTime)System.Data.SqlTypes.SqlDateTime.Null : DateTime.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString()),
title = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[2].Value.ToString()) ? string.Empty : dataGridView1.Rows[i].Cells[2].Value.ToString(),
idNumber = string.IsNullOrEmpty(dataGridView1.Rows[i].Cells[3].Value.ToString()) ? string.Empty : dataGridView1.Rows[i].Cells[3].Value.ToString()
});
}
s.insertRecord(listOfPeople);
MessageBox.Show("Values Inserted Succesfully");
}
catch (SqlException ex)
{
MessageBox.Show( ex.Message);
}
}
private void按钮2\u单击(对象发送者,事件参数e)
{
尝试
{
ToDbXml.Service2 nb=新的ToDbXml.Service2();
Service2Client s=新的Service2Client();
List listOfPeople=新列表();
对于(int i=0;i),错误消息清楚地表明您必须传递数组/人员列表,并且add语句应该位于insertRecord
function中的foreach循环中。谢谢,让我试试。您很高兴。如果我的答案对您有帮助,请将其标记为正确答案。谢谢!