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. 错误代码 2003不能连接到MySQL服务器在*.*.*.*(10061)

    错误代码 2003不能连接到MySQL服务器在*.*.*.*(10061) 错误代码 2003不能连接到MySQL服务器在*.*.*.*(10061)哪位大侠知道怎么解决啊? 在线等!!! [[i] ...

  2. jQuery九类选择器

    目的:通过选择器,能定位web页面(HTML/JSP/XML)中的任何标签, 注意:项目中,通常是多种选择器一起使用 基本选择器 <html> <head> <meta ...

  3. Spring Boot启动的报错 Stopping service [Tomcat]

    我遇到的问题是项目中使用java_websocket的WebSocketClient,由于性能要求,需要再Controller直接继承WebSocketClient, 在项目启动过程中调试进入spri ...

  4. 编译安装了的nginx 添加http_ssl_module模块

    1.看下编译安装nginx的时候,都编译安装的哪些模块. [root@zabbix ~]# /usr/local/nginx/sbin/nginx -V nginx version: nginx/1. ...

  5. SLC cache功能

    由于TLC需要多次编程,且未全部编程时wordLine处于不稳定状态,所以一般都会划出一部分区域作为SLC cache使用 SLC cache主要功能是,SSD接收到写命令后,先将数据写入SLC ca ...

  6. C学习笔记-字符串处理函数

    字符串函数是最问常用的库函数之一,本文整理了常用的字符串函数,其来源为互联网 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, ...

  7. css 移动端1px更细

    1.最近写项目经常遇到4个入口菜单放在一行,然后加border:1px 在移动端显示却很粗,如下图: <div class="header"> <div clas ...

  8. sublime的Package Control的安装及使用

    一.快速安装 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令行,粘贴如下代码(注意下面代码为一行): import urllib.request,os; pf = ...

  9. HDU 4417 【线段树+离线处理】

    http://acm.hdu.edu.cn/showproblem.php?pid=4417 题意:找出给定区间内,有多少个数小于等于给定的数.用线段树维护的话会超时,要用到线段树的离线操作,对询问与 ...

  10. 事务配置在applicationContext.xml文件中不起作用,控制不了异常回滚

    一.博主在学习到整合ssm框架的时候,遇到一个奇葩的问题就是将 事务的控制 ,写在在applicationContext.xml文件中不起作用,在事务控制的方法中,即使出现了异常,但是事务不会回滚的坑 ...