C# 调用SQL的存储过程的接口及实现
1. 接口为ExecuteStoredProcedure(string storedProcedureName, params ObjectParameter[] parameters)
2. 参数为存储过程名字, 及输入值。
3. 思路:创建连接(连接中指定了是Sql/MySql/ODBC等等); 创建通用DbCommand;更改Text以及Type;添加通用Parameter(DBParameter是抽象类,因此需要判断connection类型);判断连接状态(需Open); 调用Execute方法; 关闭连接。
4.
实现如下:
// In V1 of the EF, the context connection is always an EntityConnection
EntityConnection entityConnection = (EntityConnection)protocolDB.Connection; // The EntityConnection exposes the underlying store connection
DbConnection storeConnection = entityConnection.StoreConnection;
DbCommand command = storeConnection.CreateCommand();
command.CommandText = storedProcedureName;
command.CommandType = CommandType.StoredProcedure; if (storeConnection is SqlConnection)
{
foreach (ObjectParameter p in parameters)
{
command.Parameters.Add(new SqlParameter { ParameterName = p.Name, Value = p.Value });
}
}
else if (storeConnection is MySqlConnection)
{
foreach (ObjectParameter p in parameters)
{
command.Parameters.Add(new MySqlParameter { ParameterName = p.Name, Value = p.Value });
}
}
else
{
return enProtocolDBReturnCodes.OPERATION_FAILED;
} bool openingConnection = command.Connection.State == ConnectionState.Closed;
if (openingConnection)
{
command.Connection.Open();
} command.ExecuteNonQuery(); if (openingConnection && command.Connection.State == ConnectionState.Open)
{
command.Connection.Close();
}
C# 调用SQL的存储过程的接口及实现的更多相关文章
- Yii2.0调用sql server存储过程并获取返回值
		
1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...
 - Delphi调用SQL分页存储过程实例
		
Delphi调用SQL分页存储过程实例 (-- ::)转载▼ 标签: it 分类: Delphi相关 //-----下面是一个支持任意表的 SQL SERVER2000分页存储过程 //----分页存 ...
 - java 调用 sql server存储过程
		
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
 - VS中调用SQL SERVER存储过程
		
 存储过程是经过编译的,永久保存在数据中的一组SQL语句,通过创建和使用存储过程能够提高程序的重用性和扩展性,为程序提供模块化的功能,还有利于对程序的维护和管理.以下就详谈一下,VB.NET怎样调 ...
 - VB.NET调用SQL Sever存储过程
		
概要: 本文介绍VB.NET使用创建并调用带有输入参数和输出参数的SQL Sever存储过程 本文代码首先检查要创建的存储过程再数据库中是否存在在.如果不存在,则代码创建一个存储过程,该过程一个参数来 ...
 - qt调用sql server存储过程并获取output参数
		
最近新做的一个项目需要使用qt5连接另一台机器上的sql server,虽然网上已有类似文章,但还是有些其中很少提及的问题,故在这里汇总下: qt连接sql server可以参考这篇文章: <Q ...
 - C#调用SQL中存储过程并用DataGridView显示执行结果
		
//连接数据库 SqlConnection con = new SqlConnection("server=服务器名称;database=数据库名称;user id=登录名;pwd=登录密码 ...
 - Java调用SQL Server存储过程
		
1.调用普通存储过程(1)创建存储过程CREATE Procedure [dbo].[GetContactListByName] /*根据联系人姓名获取联系人信息*/@Name nvarchar(5 ...
 - Java的jdbc调用SQL Server存储过程Bug201906131119
		
SQL Server数据库存储过程,一个查询使用动态sql,另一个不使用动态sql,这种情况,jdbc可能获取不到实际查询数据,虽然数据库中执行没问题. 解决方法,都使用静态sql,或都使用动态sql ...
 
随机推荐
- poj 1163 The Triangle 记忆化搜索
			
The Triangle Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 44998 Accepted: 27175 De ...
 - 如何运用spring将dao注入到servlet中?
			
1.servlet的init方法 public void init(ServletConfig config) throws ServletException { super.init(config) ...
 - erlang的随机数  及 random:uniform()函数
			
每次调用会更新进程字典里的random_seed变量,这样在同一个进程内每次调用random:uniform()时,随机数种子都不同,所以生成的随机数都不一样(调用完random:uniform()后 ...
 - VI使用说明 (转)
			
vi使用方法(ZT) vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Lin ...
 - 【linux】ubuntu16.04安装vncserver实现远程访问图形界面
			
# 步骤 1 - 安装 X11VNC sudo apt install x11vnc -y # 步骤 2 - 配置访问密码 sudo x11vnc -storepasswd /etc/x11vnc. ...
 - P3746 [六省联考2017]组合数问题
			
P3746 [六省联考2017]组合数问题 \(dp_{i,j}\)表示前\(i\)个物品,取的物品模\(k\)等于\(r\),则\(dp_{i,j}=dp_{i-1,(j-1+k)\%k}+dp_{ ...
 - event loop笔记
			
注意四个对象: 主进程 执行栈 异步进程 任务队列 1.主进程读取js代码,形成对应的堆和执行栈(此时在同步环境) 2.当遇见异步任务,转交给异步进程进行处理 3.异步任务完成,将其推入任务队列 4. ...
 - 《CSS权威指南(第三版)》---第四章 值和单位
			
本章主要讲解的是一些属性声明用的值: CSS中的值主要有数字,百分数,颜色, 1.颜色: rgb(100%,100%,100%) OR rgb(255,255,255) OR #FF0000 WE ...
 - 分布式任务调度平台XXL-Job搭建
			
下载: https://github.com/xuxueli/xxl-job 下载 然后倒入到自己的工程里面 引入后: 导入数据:跑一边 导入: 修改: Window -->show view- ...
 - matlab之sortrows()函数
			
sortrows()函数的格式: sortrows(A,column) A是一个矩阵,如果没有第二个参数column,则默认按照第一列升序排列,如果遇到重复数字,则按照第二列升序排列,依次类推... ...