OUTPUT新增记录入库示例C#+存储过程
1.C#代码
public int Insert(Entity model)
{
var parameters = new SqlParameter[]
{
new SqlParameter("@ID",SqlDbType.Int){Value = model.ID},
new SqlParameter("@COL", SqlDbType.Int) {Value = model.COL} };
parameters[0].Direction = ParameterDirection.Output;
var parmetersList = new ArrayList(parameters);
return ExecuteSPE("Porc_TableName_Add", parmetersList);
}
/// <summary>
/// 处理存储过程
/// </summary>
/// <param name="spName">存储过程名</param>
/// <param name="parameters">参数列表</param>
/// <returns>存储过程的返回值</returns>
protected virtual int ExecuteSPE(string spName, ArrayList parameters)
{
int reValue = 0;
ExecuteSP(spName, parameters, out reValue);
return reValue;
}
/// <summary>
/// 处理存储过程
/// </summary>
/// <param name="spName">存储过程名</param>
/// <param name="parameters">参数列表</param>
/// <param name="reValue">返回值</param>
protected virtual void ExecuteSP(string spName, ArrayList parameters, out int reValue)
{
reValue = 0;
cmd.CommandText = spName;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 60;
cmd.Parameters.Clear();
if (parameters != null)
{
foreach (SqlParameter param in parameters)
{
cmd.Parameters.Add(param);
}
}
SqlParameter returnParam = new SqlParameter("returnVal", SqlDbType.Bit);
returnParam.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(returnParam);
try
{
Open();
cmd.ExecuteNonQuery();
reValue = Convert.ToInt32(returnParam.Value);
}
catch (Exception e)
{
LogHelper.WriteLog(
"\r\n方法异常【ExecuteSP(string spName, ArrayList parameters, out int reValue)】" + spName, e);
throw new Exception(e.Message);
}
finally
{
Close();
}
}
2.存储过程
CREATE PROCEDURE [dbo].[Porc_TableName_Add]
(
@ID INT OUTPUT,
@COL INT )
AS INSERT INTO dbo.TableName(COL)
VALUES (@COL)
SET @ID = @@IDENTITY RETURN @ID
OUTPUT新增记录入库示例C#+存储过程的更多相关文章
- ORACLE 新增记录 & 更新记录
开发中偶尔需要新增一条记录或修改一条记录的几个字段,语法中有微妙的区别. 由于不是经常写,久不写就忘记了,而又要重新查找或调试. 新增记录语法: --新增记录(仿照已有表记录)INSERT INTO ...
- IBatisNet:让insert操作返回新增记录的主键值
项目引用ibatis包: IBatisNet.Common.dll --文件版本1.6.2.0 IBatisNet.DataAccess.dll IBatisNet.DataMapper.dll 项目 ...
- PHP获取MySql新增记录ID值的方法
今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...
- ***CI新增记录成功后的返回值判断,是用isset还是empty
Q: 新增记录插入成功后,加了一个return $this->db->insert_id(); $digg_id = $this->m_feed_digg->create(js ...
- ListVeiw新增记录及 滚动条移动到指定位置
C# 自带的ListView控件的滚动条移动到指定位置. lvwList为ListView控件 lvwList.EnsureVisible(lvwList.Items.Count - 1); 新增记录 ...
- PHP获取MySql新增记录ID值的3种方法
From: http://www.jb51.net/article/51473.htm 这篇文章主要介绍了PHP获取MySql新增记录ID值的3种方法,一般使用PHP自带函数mysql_insert_ ...
- SpringBoot系列教程JPA之新增记录使用姿势
SpringBoot系列教程JPA之新增记录使用姿势 上一篇文章介绍了如何快速的搭建一个JPA的项目环境,并给出了一个简单的演示demo,接下来我们开始业务教程,也就是我们常说的CURD,接下来进入第 ...
- mybatis用mysql数据库自增主键,插入一条记录返回新增记录的自增主键ID
今天在敲代码的时候遇到一个问题,就是往数据库里插入一条记录后需要返回这个新增记录的ID(自增主键), 公司框架用的是mybatis的通用Mapper接口,里面的插入方法貌似是不能把新纪录的ID回填到对 ...
- ElasticSearch7.3学习(三十二)----logstash三大插件(input、filter、output)及其综合示例
1. Logstash输入插件 1.1 input介绍 logstash支持很多数据源,比如说file,http,jdbc,s3等等 图片上面只是一少部分.详情见网址:https://www.elas ...
随机推荐
- C语言初学 数组 打印菱形
#include<stdio.h> #include<stdlib.h> int main() { int n,i,j; printf("---开始打印符号--\n& ...
- NET Core 数据保护2
ASP.NET Core 数据保护(Data Protection 集群场景)[下] 前言 接[中篇],在有一些场景下,我们需要对 ASP.NET Core 的加密方法进行扩展,来适应我们的需求, ...
- IOS学习:常用第三方库(GDataXMLNode:xml解析库)
IOS学习:常用第三方库(GDataXMLNode:xml解析库) 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过 ...
- Java中关键字super与this的区别
一.super关键字 在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象.怎么去引 ...
- poj 2892 &&hdu 1540 Tunnel Warfare
http://poj.org/problem?id=2892 #include <cstdio> #include <cstring> #include <algorit ...
- 《how to design programs》13章用list构造表
使用cons构造一个包含多个元素的表十分麻烦,因此scheme提供了list操作,该操作接受任意量的值作为输入以创建一个表,下面是扩展的语法: <prm>=list 扩展的scheme值的 ...
- RAM区间最值
RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大)值,也就 ...
- C#.net实现密码加密算法
//SHA-1算法string password = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFil ...
- 关于Hibemate
1.Hibernate定位 HIbernate是一款实现了ORM思想的框架 JDO TOpLink 2.HIbernate初次解释 Hibernate:冬眠,蛰伏 和持久化有关系 将内存中data持久 ...
- Android Studio中解决Gradle DSL method not found: 'android()'
近期导入as的项目出了这种问题 这个问题困扰了我非常长时间,好吧,搜了半天全都是runProguard的.最后在stackoverflow上搜到解决的方法了: http://stackoverflow ...