• 1 c#传递表变量去存储数据的例子


    1 c# 代码

    using (SqlConnection con = GetEditorConnection())
    {
    con.Open();
    using (SqlCommand command = con.CreateCommand())
    {
    SqlTransaction st = con.BeginTransaction();
    command.Transaction = st;
    try
    {
    command.CommandText = procedureName;
    command.CommandType = CommandType.StoredProcedure;
    command.Parameters.Add(new SqlParameter("p_Source", dt));
    num = command.ExecuteNonQuery();
    st.Commit();
    }
    catch (Exception ex)
    {
    Log.writeLog("save data error and relationship function is executeProcedure!");
    st.Rollback();
    throw new Exception(ex.Message);
    }


    }
    con.Close();

    }

    2 存储过程实例:

       

    -- Set the database where the stored procedure is located
    USE RawData
    GO

    -- Drop older version if it exists
    IF OBJECTPROPERTY(OBJECT_ID(N'dbo.addEDISecurityMaster'), N'IsProcedure') = 1
    DROP PROCEDURE dbo.addEDISecurityMaster
    GO

    IF EXISTS(SELECT * FROM sys.types WHERE name = 'tp_EDISecurityMaster')
    DROP TYPE tp_EDISecurityMaster
    GO

    CREATE TYPE dbo.tp_EDISecurityMaster AS TABLE
    (
    ScexhID int not null,
    SedolID int null,
    Actflag char(1) null,
    Changed smalldatetime null,
    Created smalldatetime null,
    SecID int null,
    IssID int null,
    ISIN char(12) null,
    USCode char(9) null,
    IssuerName char(70) null,
    CntryofIncorp char(2) null,
    SIC char(10) null,
    CIK char(10) null,
    IndusID int null,
    SectyCD char(3) null,
    SecurityDesc char(70) null,
    ParValue decimal(14,5),
    PVCurrency char(3) null,
    StatusFlag char(1) null,
    PrimaryExchgCD char(6) null,
    Sedol char(7) null,
    SedolCurrency char(2) null,
    Defunct bit null,
    SedolRegCntry char(2) null,
    StructCD varchar(10) null,
    ExchgCntry char(2) null,
    ExchgCD char(6) null,
    Mic char(4) null,
    Micseg char(4) null,
    LocalCode varchar(50) null,
    ListStatus char(1) null,
    ListDate smalldatetime null,
    OriginalFileName varchar(50) null
    )
    GO

    GRANT EXECUTE ON TYPE::dbo.tp_EDISecurityMaster TO public
    GO

    -- Author: bing mi
    -- Create date: 2017-03-06
    -- Revisions:
    --
    CREATE PROCEDURE dbo.addEDISecurityMaster
    @p_Source tp_EDISecurityMaster READONLY
    AS
    SET NOCOUNT ON

    DECLARE @l_Err INT,
    @l_Msg VARCHAR(500),
    @l_Id NVARCHAR(15),
    @l_ProcName VARCHAR(30),
    @l_ProcDB VARCHAR(30)

    -- Initialize error handle-related constants
    SET @l_Id = ''
    SET @l_ProcName = OBJECT_NAME (@@PROCID)
    SET @l_ProcDB = DB_NAME()

    -- Business logic
    BEGIN TRY
    MERGE INTO dbo.EDISecurityMaster dst
    USING @p_Source src ON dst.ScexhID = src.ScexhID
    WHEN MATCHED THEN
    UPDATE SET
    dst.SedolID=src.SedolID,
    dst.Actflag=src.Actflag,
    dst.Changed=src.Changed,
    dst.Created=src.Created,
    dst.SecID=src.SecID,
    dst.IssID=src.IssID,
    dst.ISIN=src.ISIN,
    dst.USCode=src.USCode,
    dst.IssuerName=src.IssuerName,
    dst.CntryofIncorp=src.CntryofIncorp,
    dst.SIC=src.SIC,
    dst.CIK=src.CIK,
    dst.IndusID=src.IndusID,
    dst.SectyCD=src.SectyCD,
    dst.SecurityDesc=src.SecurityDesc,
    dst.ParValue=src.ParValue,
    dst.PVCurrency=src.PVCurrency,
    dst.StatusFlag=src.StatusFlag,
    dst.PrimaryExchgCD=src.PrimaryExchgCD,
    dst.Sedol=src.Sedol,
    dst.SedolCurrency=src.SedolCurrency,
    dst.Defunct=src.Defunct,
    dst.SedolRegCntry=src.SedolRegCntry,
    dst.StructCD=src.StructCD,
    dst.ExchgCntry=src.ExchgCntry,
    dst.ExchgCD=src.ExchgCD,
    dst.Mic=src.Mic,
    dst.Micseg=src.Micseg,
    dst.LocalCode=src.LocalCode,
    dst.ListStatus=src.ListStatus,
    dst.ListDate=src.ListDate,
    dst.OriginalFileName=src.OriginalFileName
    WHEN NOT MATCHED BY TARGET THEN
    INSERT
    ( ScexhID,
    SedolID,
    Actflag,
    Changed,
    Created,
    SecID,
    IssID,
    ISIN,
    USCode,
    IssuerName,
    CntryofIncorp,
    SIC,
    CIK,
    IndusID,
    SectyCD,
    SecurityDesc,
    ParValue,
    PVCurrency,
    StatusFlag,
    PrimaryExchgCD,
    Sedol,
    SedolCurrency,
    Defunct,
    SedolRegCntry,
    StructCD,
    ExchgCntry,
    ExchgCD,
    Mic,
    Micseg,
    LocalCode,
    ListStatus,
    ListDate,
    OriginalFileName
    )
    values
    (src.ScexhID,

    src.SedolID,
    src.Actflag,
    src.Changed,
    src.Created,
    src.SecID,
    src.IssID,
    src.ISIN,
    src.USCode,
    src.IssuerName,
    src.CntryofIncorp,
    src.SIC,
    src.CIK,
    src.IndusID,
    src.SectyCD,
    src.SecurityDesc,
    src.ParValue,
    src.PVCurrency,
    src.StatusFlag,
    src.PrimaryExchgCD,
    src.Sedol,
    src.SedolCurrency,
    src.Defunct,
    src.SedolRegCntry,
    src.StructCD,
    src.ExchgCntry,
    src.ExchgCD,
    src.Mic,
    src.Micseg,
    src.LocalCode,
    src.ListStatus,
    src.ListDate,
    src.OriginalFileName
    );

    END TRY

    -- Exception handle
    BEGIN CATCH

    -- Rollback transaction if needed
    IF @@TRANCOUNT > 0
    BEGIN
    ROLLBACK TRAN
    END

    -- Log error message
    SET @l_Msg = 'Number: ' + CONVERT(VARCHAR, ERROR_NUMBER()) + CHAR(10) +
    'Line: ' + CONVERT(VARCHAR, ERROR_LINE()) + CHAR(10) +
    'Severity: ' + CONVERT(VARCHAR, ERROR_SEVERITY()) + CHAR(10) +
    'State: ' + CONVERT(VARCHAR, ERROR_STATE()) + CHAR(10) +
    'Procedure: ' + ISNULL(ERROR_PROCEDURE(), '') + CHAR(10) +
    'Message: ' + ERROR_MESSAGE()

    SET @l_Err = ERROR_NUMBER()

    -- Store error and raise error
    EXECUTE dbo.sp_LogError @l_Err, @l_Msg, @l_Id, @l_ProcName, @l_ProcDB
    RAISERROR(@l_Msg, 18, 1)
    RETURN @l_Err

    END CATCH

    RETURN @@ERROR
    GO

    GRANT EXECUTE ON dbo.addEDISecurityMaster TO rl_DataUpload
    GO

    注意表参数顺序和c#里面传递过来的table列顺序一定要一样,列长度也要一样呀!

  • 相关阅读:
    针对专业人员的 TensorFlow 2.0 入门
    学习深度学习过程中的一些问题
    Leetcode_06_ZigZag Conversion (easy)
    leetcode_07_Reverse Integer (easy)
    独立游戏人:像素风格游戏制作分享(转)
    关于iphone开发中的@property和@synthesize的一些见解(转)
    iphone开发cocoa中nil,NSNull,Nil的使用区别
    Xcode6.1创建仅xib文件无storyboard的hello world应用(转)
    iOS 学习资料整理(转)
    hdoj1042ac
  • 原文地址:https://www.cnblogs.com/mibing/p/7026189.html
Copyright © 2020-2023  润新知