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列顺序一定要一样,列长度也要一样呀!

1 c#传递表变量去存储数据的例子的更多相关文章

  1. Python学习3——变量如何存储数据

    数值类型:包括整型.浮点型 变量名字代表的是存储地址. num01 = 100 print(id(num01)) #输出变量num01存储的内存地址,输出的是十进制值 num02 = num01 pr ...

  2. 如何使用BMap.Point传递变量、存储数据?

    在开发中使用到了百度地图进行开发,用于展示企业位置.由于数据量庞大,如果使用marker,将会造成界面卡顿,处理慢的问题. 在查看百度地图API示例是发现了海量点这个东西,还别说对于大数量的点加载起来 ...

  3. [BILL WEI]SQL 如何将查询到的列作为表名去查询数据

    我们在做sql查询的时候,有时候需要将查询的列作为表名,去引用,然后再次查询 declare @table_name varchar(20) select @table_name=table_name ...

  4. SQLServer中临时表与表变量的区别分析(转)

    在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与永 ...

  5. SQL Server 临时表 Vs 表变量

    开始 说临时表和表变量,这是一个古老的话题,我们在网上也找到很多的资料阐述两者的特征,优点与缺点.这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和 ...

  6. SQLServer中临时表与表变量的区别分析【转】

    在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与永 ...

  7. [转]SQL Server中临时表与表变量的区别

    [转]http://blog.csdn.net/skyremember/archive/2009/03/05/3960687.aspx 我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是 ...

  8. SQL Server中临时表与表变量的区别

    我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量.在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候 ...

  9. sql server中的临时表、表变量和公用表表达式

    在编写T-SQL语句的时候,SQL Server提供了三种方法临时存储某些结果集,分别是临时表.表变量和公用表表达式. 临时表 临时表需要在临时数据库TempDB中通过I/O操作来创建表结构,一旦用户 ...

随机推荐

  1. List自定义对象的排序,根据对象的某一列进行排序

    在工作中,经常需要对List对象集合进行排序操作,下面总结下搞个通用排序对象,原理是使用JAVA的 Comparator    接口实现排序   不多说直接上“干货” 1.存在实体类: @Data @ ...

  2. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-1.单机和分布式应用的登录检验讲解

    笔记 第四章 开发在线教育视频站点核心业务之JWT微服务下的用户登录权限校验 1.单机和分布式应用的登录检验讲解     简介:讲解单机和分布式应用下登录校验,session共享,分布式缓存使用 1. ...

  3. maskrcnn_benchmark 理解

    转载与参考: 1,https://zhuanlan.zhihu.com/p/58101945 2,https://blog.csdn.net/linolzhang/article/details/71 ...

  4. vue中父组件调用子组件的方法

    原文地址 文章目录 什么是组件? 使用组件 组件 什么是组件? 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自 ...

  5. 【POJ - 3262】Protecting the Flowers(贪心)

    Protecting the Flowers 直接中文 Descriptions FJ去砍树,然后和平时一样留了 N (2 ≤ N ≤ 100,000)头牛吃草.当他回来的时候,他发现奶牛们正在津津有 ...

  6. C++学习笔记-异常处理

    程序设计的要求之一就是程序的健壮性.希望程序在运行时能够不出或者少出问题.但是,在程序的实际运行时,总会有一些因素会导致程序不能正常运行.异常处理(Exception Handling)就是要提出或者 ...

  7. Python动态地声明变量赋值

    通过exec().globals()和locals() # 通过exec() for i in range(1, 4): # 第一次循环 i=1 时,会执行字符串中的python语句 ex1 = &q ...

  8. 使用PowerShell 自动安装IIS 及自动部署网站

    执行环境:Windows Server 2012 R2 安装iis核心代码,可自定义安装项 注意这里不能使用add-windowsfeature  "Web-Filtering", ...

  9. nginx多线程高并发

    直接上图 Master-Worker模式 1.Nginx 在启动后,会有一个 master 进程和多个相互独立的 worker 进程. 2.接收来自外界的信号,向各worker进程发送信号,每个进程都 ...

  10. Minimum Cost For Tickets

    In a country popular for train travel, you have planned some train travelling one year in advance.  ...