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

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

图片说明

效果如下
图片说明

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

6个回答

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

showbo
支付宝加好友偷能量挖,胡杨在等着我的召唤 回复sinat_34861539: 回在最下面了,自己参考下,没考虑sql注入和数据有效性验证,自己注意加上
2 年多之前 回复
sinat_34861539
sinat_34861539 回复showbo: 。。。采纳了
2 年多之前 回复
showbo
支付宝加好友偷能量挖,胡杨在等着我的召唤 回复sinat_34861539: 先采纳后代码
2 年多之前 回复
sinat_34861539
sinat_34861539 回复showbo: 能不能根据我这个例子直接写一段代码给我,能用一定采纳T T这是我的毕设 真的很绝望。。
2 年多之前 回复
sinat_34861539
sinat_34861539 回复qq_21398181: 有没有具体代码啊。。
2 年多之前 回复
qq_21398181
qq_21398181 服务器端反序列化为数组入库就行了
2 年多之前 回复
showbo
支付宝加好友偷能量挖,胡杨在等着我的召唤 回复sinat_34861539: 采纳了帮你撸一个,也不一定用json,用特殊字符分隔,服务端再拆分也一样的,只是输入内容不能包含分隔的字符
2 年多之前 回复
sinat_34861539
sinat_34861539 等等 哦 我看看这个例子
2 年多之前 回复
sinat_34861539
sinat_34861539 我就是不会写啊T T 会写就不会问了T T
2 年多之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 这个例子我看过了,非常好。建议采纳。
2 年多之前 回复

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

b100522
椎名小由奈 回复sinat_34861539: 看到消息晚了。。。
2 年多之前 回复
sinat_34861539
sinat_34861539 能不能给就具体代码啊T T我是真不会
2 年多之前 回复

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

sinat_34861539
sinat_34861539 能不能写段具体代码。。。。
2 年多之前 回复

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

sinat_34861539
sinat_34861539 有没有具体代码T T
2 年多之前 回复

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

sinat_34861539
sinat_34861539 有没有具体代码T T
2 年多之前 回复

<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();
        }
    }
sinat_34861539
sinat_34861539 回复showbo: 没有跳出保存成功。。。数据库也没有变化。。
2 年多之前 回复
showbo
支付宝加好友偷能量挖,胡杨在等着我的召唤 回复sinat_34861539: 你动态页的名称,代码就上面的。自己注意路径问题。如果你的数据库是access的不支持执行多条sql语句,在在什么的for循环里面直接执行
2 年多之前 回复
sinat_34861539
sinat_34861539 回复showbo: 不是啊,你前面写的XXX我要改成啥
2 年多之前 回复
showbo
支付宝加好友偷能量挖,胡杨在等着我的召唤 回复sinat_34861539: aspx你不懂是什么?asp.net的动态页啊。。就是ajax请求的url地址
2 年多之前 回复
sinat_34861539
sinat_34861539 type: 'POST', url: 'xxxxx.aspx', 这里是什么意思啊 要链接到哪个页面呢
2 年多之前 回复
sinat_34861539
sinat_34861539 jquery-1.7.1.min.js我也放进去了 执行数据库语句我也加了 不行啊。。。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐