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列顺序一定要一样,列长度也要一样呀!
1 c#传递表变量去存储数据的例子的更多相关文章
- Python学习3——变量如何存储数据
数值类型:包括整型.浮点型 变量名字代表的是存储地址. num01 = 100 print(id(num01)) #输出变量num01存储的内存地址,输出的是十进制值 num02 = num01 pr ...
- 如何使用BMap.Point传递变量、存储数据?
在开发中使用到了百度地图进行开发,用于展示企业位置.由于数据量庞大,如果使用marker,将会造成界面卡顿,处理慢的问题. 在查看百度地图API示例是发现了海量点这个东西,还别说对于大数量的点加载起来 ...
- [BILL WEI]SQL 如何将查询到的列作为表名去查询数据
我们在做sql查询的时候,有时候需要将查询的列作为表名,去引用,然后再次查询 declare @table_name varchar(20) select @table_name=table_name ...
- SQLServer中临时表与表变量的区别分析(转)
在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与永 ...
- SQL Server 临时表 Vs 表变量
开始 说临时表和表变量,这是一个古老的话题,我们在网上也找到很多的资料阐述两者的特征,优点与缺点.这里我们在SQL Server 2005\SQL Server 2008版本上通过举例子,说明临时表和 ...
- SQLServer中临时表与表变量的区别分析【转】
在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候去使用临时表而不使用表变量,有时候去使用表变量而不使用临时表呢? 临时表 临时表与永 ...
- [转]SQL Server中临时表与表变量的区别
[转]http://blog.csdn.net/skyremember/archive/2009/03/05/3960687.aspx 我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是 ...
- SQL Server中临时表与表变量的区别
我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量.在实际使用的时候,我们如何灵活的在存储过程中运用它们,虽然它们实现的功能基本上是一样的,可如何在一个存储过程中有时候 ...
- sql server中的临时表、表变量和公用表表达式
在编写T-SQL语句的时候,SQL Server提供了三种方法临时存储某些结果集,分别是临时表.表变量和公用表表达式. 临时表 临时表需要在临时数据库TempDB中通过I/O操作来创建表结构,一旦用户 ...
随机推荐
- RecoderUtils录音工具类
import android.media.MediaRecorder; import android.os.Environment; import java.io.File; import java. ...
- Google Protocol Buffer 用法 C#
在网上查了一下,虽然有很多文章介绍Protocol Buffer,但是实际使用起来,还是会遇到很多问题,所以我想应该有一个指南一样的东西,让新手很快就能使用它. Protocol Buffer简写为P ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-9.使用JWT生成用户Token回写客户端
笔记 9.使用JWT生成用户Token回写客户端 简介:讲解用户授权登录后,需要生成登录凭证重定向到页面上 1.获取当前页面访问地址 2.根据User基本信息生成token 3.重定向到指定页 ...
- generator自动生成数据表
1.先写好自己要创建的字段等: 然后将将上面的在plsql中运行,创建数据表.
- coreDNS域名无法解析问题
问题: 在pod内无法解析域名 解决: busybox的镜像有bug,导致ping可以解析,但是nslookup无法解析 kubectl run -it --rm --image=infoblox/d ...
- Django 1.x版本与2.x版本 区别
django 1.x版本与2.x版本 URL区别 在django 1.x中的方式 导入的模块是'from django.conf.urls import url',urlpatterns中url对应的 ...
- Stream系列(十一)SummarizingDouble方法使用
汇总 视频讲解: https://www.bilibili.com/video/av78011675/ EmployeeTestCase.java package com.example.demo; ...
- 腾讯云远程连接Kafka
腾讯云服务器上部署Kafka,使用server.properties中公网IP配置: 启动时候报错: ERROR [KafkaServer id=0] Fatal error during Kafka ...
- 进行hcmcloud 数据库备份以及设置的处理过程.
导入数据库以及简单设置. 最近进行了一个数据库备份的简单工作: create database hcmcloud create user hcm with password 'Test6530' 执行 ...
- memcached命令行、Memcached数据导出和导入
1.memcached命令行 telnet 127.0.0.1 11211set key2 0 30 2abSTOREDget key2VALUE key2 0 2abEND 如: set key3 ...