asp.net mvc批量插入

时间:2013-11-25 09:05:52

标签: c# jquery sql asp.net-mvc

我有2个表学生和标记,每个班级有不同数量的学生,

StudentTable

  • StudentId
  • StudentName

MarksTable

  • MarksId
  • StudentId
  • ExamDate
  • MarksScored

我正在尝试创建一个表单,我想为所选的Class中的所有学生生成 MarksTable 结构,例如,第9课有45名学生,我想为每个学生生成45行1,并希望为每个学生批量插入 MarksTable 1行。

在本页面上,我们允许教师选择类,并使用jquery我们正在用行数更新DOM,请帮助

此致

2 个答案:

答案 0 :(得分:1)

将您的数据作为JSON传递到服务器可能是您的解决方案。

现在假设您的网页有一个包含45行的表格,每行有5个文本框(比如用于输入主题标记)。你需要遍历所有行并构造你的json对象数组(每个对象代表一个学生)。

var students = [];
$('#students tbody tr').each(function(indx, el){
    arrtd = $(el).find('td');   
    var student_id = arrtd[0].innerHTML;
    var student_name = arrtd[1].innerHTML;
    var subject_1 = arrtd[2].innerHTML;
    //...
    students.append(
        {
            studentid: student_id,
            name: student_name,
            ...
        }
    );
});

var stringify_result = JSON.stringify(students);

此字符串化版本成为服务器上相应操作的参数。您可以将其值分配给隐藏变量并在服务器上提交表单;或者在$.ajax电话中将其作为参数传递。

在服务器端,您需要使用newtonsoft json库来解析json字符串:

public ActionResult BulkInsert(string students_json)
{
    var jarr = JArray.Parse(students_json);
    foreach(JObject obj in jarr)
    {
        var student_id = obj['studentid'].Value;
        //...
    }   
}

答案 1 :(得分:0)

立即尝试批量插入文件上传功能。