You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerApps如何将录入空表的数据以JSON传入SQL Server存储过程

操作界面截图

实现方案

核心逻辑是用Power Apps本地集合作为临时存储的内存表,不需要提前绑定外部数据集,完全满足先本地批量录入、再统一提交到SQL的需求,具体步骤如下:

  • 初始化临时存储集合
    在App的OnStart属性写入以下代码,启动应用时创建一个和你要录入字段匹配的空结构化集合:

    ClearCollect(
        colTempRecords,
        {
            Name: "",
            Amount: 0,
            Measure: ""
        }
    );
    // 移除初始化生成的空行,得到完全空白的结构化临时表
    Remove(colTempRecords, First(colTempRecords))
    

    你界面下方用来展示录入数据的Data Table/Gallery控件,直接把Items属性设置为colTempRecords即可,不需要绑定任何外部数据源。

  • 配置OK按钮的录入逻辑
    把OK按钮的OnSelect属性设置为以下代码,点击时把输入框内容写入临时集合,同时重置输入框方便下一条录入:

    // 将当前输入框内容写入临时集合
    Collect(
        colTempRecords,
        {
            Name: txtName.Text, // 替换为你界面上Name输入框的实际控件名
            Amount: Value(txtAmount.Text), // 替换为你界面上Amount输入框的实际控件名
            Measure: txtMeasure.Text // 替换为你界面上Measure输入框的实际控件名
        }
    );
    // 重置所有输入框
    Reset(txtName);
    Reset(txtAmount);
    Reset(txtMeasure);
    

    写完后每次点OK,新录入的行会即时显示在下方的表控件里。

  • 配置Save按钮的提交逻辑
    把Save按钮的OnSelect属性设置为以下代码,将临时集合转成JSON传入SQL存储过程:

    // 将临时集合转为JSON格式字符串
    Set(
        varSubmitJson,
        JSON(colTempRecords, JSONFormat.IgnoreBinaryData)
    );
    // 调用已连接的SQL Server存储过程,传入JSON参数
    // 请替换为你实际的SQL连接名、存储过程名、参数名
    [你的SQL连接名称].[你的存储过程名称](
        {
            json: varSubmitJson
        }
    );
    // 提交成功后清空临时表,弹出提示
    Clear(colTempRecords);
    Notify("所有数据已提交完成", NotificationType.Success, 3000);
    

注意:提前在Power Apps中添加对应SQL Server的数据源连接,确保存储过程的@json参数类型为nvarchar(max),和传入的JSON字符串格式匹配即可,SQL端直接用OPENJSON解析参数就能拿到所有录入的行数据。

内容的提问来源于stack exchange,提问作者matt_vice89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 04:33:26