我有下面的控制器操作方法。
public int BulkUpdate(List employees) {
Connection();
employees = GetAllEmployees().ToList();
// using reflection, i mean why did i use this ??
//used it for converting the generic list into datatables.
DataTable dt = new DataTable(typeof(Employee).Name);
PropertyInfo[] props = typeof(Employee).GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (var prop in props)
{
dt.Columns.Add(prop.Name);
}
foreach (var employee in employees)
{
var values = new object[props.Length];
for (int i = 0; i < props.Length; i++)
{
values[i] = props[i].GetValue(employee, null);
}
dt.Rows.Add(values);
}
//
using (SqlCommand cmd = new SqlCommand("BulkUpdateEmployee", con))
{
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parameter = cmd.Parameters.AddWithValue("@tblEmployeeType", dt);
parameter.SqlDbType = SqlDbType.Structured;
parameter.TypeName = "dbo.EmployeeType";
con.Open();
var rowsAffected = cmd.ExecuteNonQuery();
con.Close();
return rowsAffected;
}//using ends here
}
and this method is being called in main controller:
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)] public JsonResult BulkUpdateOrInsert(List employees) { int rowsAffected=empRepo.BulkUpdate(employees); return Json(rowsAffected, JsonRequestBehavior.AllowGet);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。