目录
定义DataTable
private System.Data.DataTable dt = new System.Data.DataTable();
调用存储过程
cs
//存储数据库
conString = ConfigurationManager.ConnectionStrings["Con"].ConnectionString.ToString();
SqlConnection conn = new SqlConnection(conString);
conn.Close();
conn.Open();
//创建指令对象
SqlCommand sqlCommand = new SqlCommand("InsertAccountingDocument", conn);
sqlCommand.CommandType = CommandType.StoredProcedure; //存储过程
sqlCommand.Parameters.Add("@AccountingDocumentTable", SqlDbType.Structured).Value = dt;
sqlCommand.Parameters.Add("@gjahr", SqlDbType.Char, 4).Value = this.year;
sqlCommand.Parameters.Add("@monat", SqlDbType.Char, 2).Value = this.month.PadLeft(2, '0'); //指定2位,不足位数时左边补零
if (begin == 1)
{
sqlCommand.Parameters.Add("@begin", SqlDbType.Int).Value = 1;
}
else
{
sqlCommand.Parameters.Add("@begin", SqlDbType.Int).Value = 0;
}
sqlCommand.ExecuteNonQuery();
conn.Close();
C#配置文件

XML
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="SAP.Middleware.Connector">
<sectionGroup name="ClientSettings">
<section name="DestinationConfiguration" type="SAP.Middleware.Connector.RfcDestinationConfiguration,sapnco" />
</sectionGroup>
</sectionGroup>
</configSections>
<!--连接字符串-->
<connectionStrings>
<add name="Con" connectionString="server=localhost;uid=sa;pwd=GDhs3225966;database=HS_Label_System;" />
</connectionStrings>
<SAP.Middleware.Connector>
<ClientSettings>
<DestinationConfiguration>
<destinations>
<!--310测试系统-->
<!--<add NAME="S4D" USER="019246" PASSWD="GZdyg3225966" CLIENT="200" SYSNR="00" ASHOST="192.168.4.20" LANG="ZH" GROUP="PUBLIC" MAX_POOL_SIZE="10" IDLE_TIMEOUT="600"/>-->
<add NAME="S4D" USER="024083" PASSWD="Hs87654321" CLIENT="310" SYSNR="00" ASHOST="192.168.4.20" LANG="ZH" GROUP="PUBLIC" MAX_POOL_SIZE="10" IDLE_TIMEOUT="600" />
<!--500测试系统-->
<add NAME="S4Q" USER="000072" PASSWD="Hs123456789" CLIENT="500" SYSNR="00" ASHOST="192.168.4.21" LANG="ZH" GROUP="PUBLIC" MAX_POOL_SIZE="10" IDLE_TIMEOUT="600" />
<!--800正式系统-->
<add NAME="S4P" USER="000072" PASSWD="Hs123456789" CLIENT="800" SYSNR="00" ASHOST="192.168.4.23" LANG="ZH" GROUP="PUBLIC" MAX_POOL_SIZE="10" IDLE_TIMEOUT="600" />
</destinations>
</DestinationConfiguration>
</ClientSettings>
</SAP.Middleware.Connector>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
数据库存储过程
sql
USE [HS_Label_System]
GO
/****** Object: StoredProcedure [dbo].[InsertAccountingDocument] Script Date: 02/07/2025 10:02:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: LiuHongyu
-- Create date: 2025-01-23
-- Description: 批量插入会计凭证
-- =============================================
ALTER PROCEDURE [dbo].[InsertAccountingDocument]
-- Add the parameters for the stored procedure here
@AccountingDocumentTable as AccountingDocument readonly,
@gjahr as char(4),
@monat AS CHAR(2),
@begin AS int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF @begin = 1
BEGIN
DELETE FROM AccountingDocument WHERE GJAHR = @gjahr and MONAT = @monat;
END
Insert into AccountingDocument(BUKRS,BUTXT,GJAHR,BELNR,BUZEI,MONAT,BLDAT,BUDAT,BLART,STBLG,SGTXT,BSCHL,HKONT,TXT20,GKONT,GKONT_1,BANUM,BADEC,ANLN1,TXT50,KOSTL,KTEXT,AUFNR,AUFTX,WAERS,KURSF,SHKZG,SWRBTR,HWRBTR,SDMBTR,HDMBTR,RFAREA)
select BUKRS,BUTXT,GJAHR,BELNR,BUZEI,MONAT,BLDAT,BUDAT,BLART,STBLG,SGTXT,BSCHL,HKONT,TXT20,GKONT,GKONT_1,BANUM,BADEC,ANLN1,TXT50,KOSTL,KTEXT,AUFNR,AUFTX,WAERS,KURSF,SHKZG,SWRBTR,HWRBTR,SDMBTR,HDMBTR,RFAREA
from @AccountingDocumentTable;
END