ASP.NET 如何在Onclick方法中将table中的数据全部插入到数据库的一张表中

ASP.NET 如何在Onclick方法中将table中的数据全部插入到数据库的一张表中

问题描述:

table里的数据是用js 按添加按钮一次一次添加进去的,所以table的行数随机,列数只有两列。

图片说明

效果如下
图片说明

请问如何 按一个按钮后 在后台一次性把前端的显示数据插入数据库sql server里呢?
能不能给一段具体代码!!!!

自己遍历table组合成json数组,服务器端反序列化为数组入库就行了,
DEMO:Asp.Net商品尺码,颜色,数量入库示例

把table放在表单里,然后表单序列化,提交,后天接收。

建立一个实体, 将数据放进ILIST,然后循环将ILIST更新到数据库中,

多种方式可以实现,如果是webform的话,可以直接使用服务器端onserverclick,表中的数据通过前端js将其放入一个server级别的输入框里,在onserverclick对应的后台处理方法,可以操作该书入库的内容;
也可以直接用ajax,js将表中数据逐条封装为数组,通过ajax向后台提交,json、字符串等格式均可。

序列化生成json ,调用事先封装好的方法就行了


<script src="https://cdn.bootcss.com/jquery/1.7.1/jquery.min.js"></script>
货品名:<input type="text" id="text1" /> 数量:<input type="text" id="text2" /><input type="button" value="添加" /><br />
<table id="table" border="1"><tr><td>货品名</td><td>数量</td></tr></table>
<br /><a onclick="save()">保存</a>
<script>
    $(function () {
        $(':button').click(function (e) {
            var text1 = $('#text1').val();
            var text2 = $('#text2').val();
            $('#table').append('<tr><td>' + text1 + '</td>><td>' + text2 + '</td></tr>')
        })
    });
    function save() {
        var data = $('#table tr:gt(0)').map(function () {
            //如果输入内容存在英文状态下|则替换为全角状态下的|
            return $('td', this).map(function () { return this.innerHTML.replace(/\|/g,'|')}).get().join('|');//每组用英文状态下|分隔
        }).get().join('\n');//每行数据用换行符隔开

        if (!data) { alert('先添加数据!'); return }

        $.ajax({
            type: 'POST', url: 'xxxxx.aspx', data: { data: data, op: 'save' }, complete: function (xhr) {
                var s = xhr.responseText;
                if (s == '1') alert('保存成功')
                else alert(s)
            }
        })
    }
</script>

xxxxx.aspx


    protected void Page_Load(object sender, EventArgs args)
    {
        if (Request.Form["op"] == "save")
        {
            string data = Request.Form["data"],sql="";
            if (string.IsNullOrEmpty(data))
            {
                string[] arr = data.Split('\n'),item;
                foreach (string s in arr)
                {
                    item = s.Split('|');
                    if (item.Length < 2) continue;
                    sql += "insert into xxxtable(name,num)values('" + item[0] + "'," + item[1] + ")";
                }
                if (sql != "")
                { //执行sql语句,不用我多少了吧。。。


                    Response.Write("1");//成功输出1
                }
                else Response.Write("数据错误...");
            }

            Response.End();
        }
    }