在ASP.NET MVC中使用SqlBulkCopy在远程SQL Server上插入记录

问题描述 投票:0回答:1

我一直在通过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);
}

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

using SqlBulkCopy;

第二次尝试

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

第三次尝试

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

第四次尝试

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

有时会生成

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

请帮助...

c# sql-server asp.net-mvc web sqlbulkcopy
1个回答
1
投票

随后您会收到各种错误的事实很奇怪,但是我注意到这种东西违反了批量插入的目的:

oSqlBulkCopy.BatchSize = 1;

[This property通常应具有更大的值以实际减少往返次数。

不确定,但是由于对服务器发出大量查询,因此可能会导致麻烦。

© www.soinside.com 2019 - 2024. All rights reserved.