【问题标题】:Insert a javascript array into a SQL table将 javascript 数组插入 SQL 表
【发布时间】:2013-10-08 23:31:58
【问题描述】:

抱歉标题含糊,但我完全不知道该怎么做。我在页面上有一个 jquery 自动完成文本框,允许用户搜索公司名称并将其添加到逗号分隔列表中。我可以使用 javascript 来解析这些值并创建一个整数数组(每个公司的 ID)。 当我执行 javascript 警报时,它将以整数数组 (9,20,19,17) 显示公司 ID。下一步我不知道如何去做如何将它们放入我的插入存储过程并使用第一个表插入中的 scope_identity 循环它们。

以下是我当前的存储过程。现在我只有一个硬编码的供应商 ID 用于第二次插入,但我需要能够为每个选定的公司添加一行到关联表中。因此,理想情况下,它将遍历所有四个选定的公司,并从提名表的插入中添加公司 ID 以及范围标识。页面上的所有其他数据将直接从 asp.net 控件添加,我不知道如何将 javascript 数组信息传递给 SP...任何指导或方向将不胜感激..

CREATE PROCEDURE dbo.NewNomination
    @ProviderFirstName VARCHAR (30)=NULL, 
    @ProviderLastName VARCHAR (30)=NULL, 
    @providerCompany VARCHAR (30)=NULL, 
    @providerTitle VARCHAR (30)=NULL, 
    @providerEmail VARCHAR (30)=NULL, 
    @providerPhone VARCHAR (30)=NULL, 
    @UseMyName BIT, 
    @MakeCall BIT, 
    @new_identity INT = NULL OUTPUT
AS
BEGIN
    SET NOCOUNT ON;
   INSERT INTO dbo.nomination
          ( 
            ProviderFirstName   ,
            ProviderLastName    , 
            providerCompany     , 
            providerTitle       ,
            providerEmail       , 
            providerPhone       , 
            UseMyName           ,
            MakeCall            

          ) 
     VALUES 
          ( 
            @ProviderFirstName  ,
            @ProviderLastName   , 
            @ProviderCompany    , 
            @providerTitle       ,
            @providerEmail       , 
            @providerPhone       , 
            @UseMyName          ,
            @MakeCall           

          ) 

    SET @new_identity = SCOPE_IDENTITY();


     INSERT INTO dbo.NominationSupplier
          ( 
            NominationID        ,
            SupplierID          ,
            fname               ,
            lname               ,
            email       


          ) 
     VALUES 
          ( 
            @new_identity       ,
            28      ,
            @ProviderFirstName  ,
            @ProviderLastName   ,
            @providerEmail

          ) 


    COMMIT TRAN




END
GO

`

【问题讨论】:

  • 使用用 .net、php、coldfusion 或类似的东西编写的服务器端应用程序。将列表传递给该应用程序并使用它与您的数据库通信。
  • 好的..我想我走得更远了..希望这是正确的道路。我已将 jquery 数组值传递给页面上的隐藏 asp.net 字段,因此我可以将其绑定到通过存储过程将其插入到我的数据库中。所以现在我只需要弄清楚存储过程以及如何遍历该数组的值(例如 2、6、8、10)并将它们作为单独的插入与 Scope_Identity ID 一起插入到关联表中。不确定该逻辑是在 SP 中的某处还是在 javascript 中完成的。我假设它必须在 SP 中,因为这是生成 Scope_Identity ID 的地方。
  • OK...可能走错路了,我发现通过 jquery 我只是将单独的数组值添加到隐藏的输入中,不能将它们隐藏在 asp.net 中显然控制..所以我仍然无法通过存储的过程将它们拉入。不知道下一步该去哪里。我还没有找到任何关于如何为此使用 ajax 的明确文档。看来我已经在使用存储过程来输入数据并获取 scopeidentity,所以我不清楚 ajax 的来源。我会以多种方式将数据输入 SQL 吗?

标签: javascript jquery asp.net sql


【解决方案1】:

您可以使用 JQuery 并通过 http://api.jquery.com/jQuery.ajax 将您的 javascript 数据发布到服务器。

使用 php,您可以将数据写入 sql db: http://php.net/manual/en/mysqli.query.php

【讨论】:

  • 感谢您的回复。抱歉,我可能忘记补充说这是在 asp.net (C#) 中,所以我希望在可能的情况下在 C# 代码或 javascript/jquery 中完成此操作。数据库也是 MS SQL
  • 使用 Jquery,您可以通过 api.jquery.com/jQuery.post 发送到服务器。有了它,您无需在输入字段中写入数组。 jQuery.post 将数据发送到服务器,并且就像表单字段变量一样。无需填写任何隐藏的输入字段。只需使用 jQuery.post 代替。在服务器上,您可以获取这些变量并执行所需的操作。
猜你喜欢
  • 1970-01-01
  • 2014-05-10
  • 2021-05-14
  • 2018-08-13
  • 2014-08-21
  • 2011-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多