【问题标题】:Insert record on a remote SQL Server using SqlBulkCopy in ASP.NET MVC在 ASP.NET MVC 中使用 SqlBulkCopy 在远程 SQL Server 上插入记录
【发布时间】:2020-08-03 08:38:14
【问题描述】:

我一直在通过我的 ASP.NET MVC Web 应用程序管理存储在远程服务器数据库中的供应商信息。

我可以成功地进行正常的 CRUD 操作。

我在这个 Web 应用程序中还有一个功能,可以使用 SqlBulkCopy 在远程服务器上的数据库中插入供应商信息。

using (oSqlBulkCopy = new SqlBulkCopy(pConnectionString, SqlBulkCopyOptions.Default))
{
    string[] vColumns = { "vSupplierID", "vUniqueRegRefNumber", "vIsSupplierActive", "vSupplierInactiveReason", "vSupplierInactiveDate", "vIsAssociated", "vSupplierTypeCode", "vSupplierTypeName", "vSupplierSubTypeCode", "vSupplierSubTypeName", "vGovernmentTypeCode", "vGovernmentTypeName", "vIndustryClassificationCode", "vIndustryClassificationName", "vCountryOfOriginCode", "vCountryOfOriginName", "vLegalName", "vTradingName", "vIDTypeCode", "vIDTypeName", "vSAIDNumber", "vForeignIDNumber", "vForeignPassportNumber", "vWorkPermitNumber", "vSACompanyNumber", "vRegistrationDate", "vForeignCompanyRegNo", "vSATrustRegNo", "vForeignTrustRegistrationNumber", "vDateOperationStarted", "vHaveBankAccount", "vBusinessStatusCode", "vBusinessStatusName", "vBusinessStatusLastVerificationDate", "vCreatedDate", "vEditDate", "vBulkFileBackupName" };

    string vTableName = "KNO_DSM_RT_Supplier_Temporary";

    Mapping.MapColumns(oSqlBulkCopy, vTableName, vColumns);

    oSqlBulkCopy.BatchSize = 1;
    oSqlBulkCopy.WriteToServer(this);
}

第一次尝试:插入的供应商信息已从第三方网络服务下载。在插入/更新供应商信息时出现以下错误

using SqlBulkCopy;

第二次尝试

供应商标识导入期间发生错误:从服务器接收结果时发生传输级错误。 (提供者:会话提供者,错误:19 - 物理连接不可用)未为当前供应商导入供应商标识

第三次尝试

供应商标识导入期间发生错误:执行超时已过期。在操作完成之前超时时间已过或服务器没有响应。未为当前供应商导入供应商标识

第四次尝试

供应商标识导入期间发生错误:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)未为当前供应商导入供应商标识

有时它会生成

远程服务器返回错误。错误请求(400)

请帮忙...

【问题讨论】:

    标签: c# sql-server asp.net-mvc web sqlbulkcopy


    【解决方案1】:

    您在随后收到各种错误的事实很奇怪,但我注意到有些事情违背了批量插入的目的:

    oSqlBulkCopy.BatchSize = 1;
    

    This property 通常应该有一个更大的值来实际减少往返次数。

    不确定,但由于对服务器发出大量查询,这可能会导致问题。

    【讨论】:

      猜你喜欢
      • 2016-03-07
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多