c#执行oracle存储过程,C#中如何执行存储过程方法
功能 : 根据调用的方法名称 反射动态调用 sql Command 的方法
代码如下:
///
/// 存储过程的属性
/// ProcName 存储过程的名称
/// MethodName 执行SqlCommand 方法的名称
/// PrmList 存储过程的参数
///
public class ExeProc
{
public string ProcName;
public string MethodName;
public object[] PrmValue;
}
根据制定的存储过程的名称
和参数 来执行指定的存储过程 和 调用 sqlCommand 的方法
代码如下:
public class DataHelper
{
private string connString = null;
public DataHelper(string conStr)
{
this.connString = conStr;
}
///
/// 执行存储过程
///
/// 执行存储过程的属性
/// ProcName 存储过程的名称
/// MethodName 执行SqlCommand 方法的名称
/// PrmList 存储过程的参数
///
/// 返回执行的结果
public object ExecProcRetObj(ExeProc ep)
{
if (this.connString != null && this.connString != string.Empty)
{
try
{
SqlConnection con = new SqlConnection(this.connString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "Exec " + ep.ProcName + " ";
foreach (object obj in ep.PrmValue)
{
cmd.CommandText += obj + ",";
}
cmd.CommandText = cmd.CommandText.Remove(cmd.CommandText.Length - 1, 1);
Type ty = cmd.GetType();
con.Open();
//用反射根据输入的方法名 执行对应的方法
object retObj = ty.InvokeMember(ep.MethodName, BindingFlags.InvokeMethod, null, cmd, null);
if (retObj.GetType().FullName == "System.Data.SqlClient.SqlDataReader")
{
//将返回的object 转换成DataTable
DataTable retDt = new DataTable();
retDt.Load(retObj as SqlDataReader);
con.Close();
con.Dispose();
return retDt;
}
return retObj;
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show("获取数据发生错误n" + ex.Message);
}
}
return null;
}
}
c#执行oracle存储过程,C#中如何执行存储过程方法相关推荐
- oracle sql语句中包含‘’ 的解决方法
oracle sql语句中包含'&' 的解决方法 参考文章: (1)oracle sql语句中包含'&' 的解决方法 (2)https://www.cnblogs.com/hm1990 ...
- winform执行oracle语句,C#中的Winform应用程序连接远程Oracle数据库的配置文件及SQL语句的写法...
远程连接Oracle数据库的配置文件及sql语句 近期,应朋友的要求,用C#语言开发了一个winform应用程序,要求的是连接到远程的Oracle数据库,用惯了SQL Server的我突然有点懵,然后 ...
- navicat 怎么调试存储过程_Navicat中如何调试存储过程
存储过程调试方法 参考 调试非常麻烦 如何在存储过程中注释? 在存储过程编辑中无法注释,所以需要先将代码拷贝到普通查询页,在查询页注释好,然后再将代码拷贝回存储过程中,保存. 变量定义 定义varch ...
- java调用sqlserver存储过程_Java中调用SQLServer存储过程示例
下面就发布一个完整的采用setXXX(String parameterName, XXX x)的编写方法.创建数据表,存储过程的代码都完整发布. 创建表: CREATE TABLE [BookUser ...
- oracle 转储 mysql_Oracle中DUMP的转储方法
什么是DUMP: 美[dand;mp] 转贮:转存:转贮数据 (内存信息)转贮,转存 DUMP是一个动词,它代表一种操作,说的 什么是DUMP: 美[d∧mp] 转贮:转存:转贮数据 (内存信息)转贮 ...
- plsql执行oracle函数,PLSQL中Function和Procedures的简单使用
FUNCTION(函数方法): 作用: 用于返回特定的数据(数据处理),关注点在于返回的结果. 格式: CREATEORREPLACEFUNCTION函数名(参数 类型) RETURN类型 IS名称 ...
- java批量执行sql语句_Java中批量执行sql语句
在我们实际项目开发过程中,可能有的功能在后台需要执行几条sql语句甚至需要批量的执行一些sql语句,如果是循环一条一条执行,我想大家都知道这样做的效率特别低,尤其是批量sql时,但是如果我们先循环把整 ...
- oracle创建job一年执行,Oracle快速创建定时job执行批量转储过程脚本参考案例
-- 创建短信批量转储存储过程,将已经发送的短信转移至短信历史表 create or replace procedure PUB_SHORTMSG_ARCH_BAT as MSG_ID pub_sho ...
- mysql 读取oracle数据_Python中Pandas通过read_sql方法从Mysql或Oracle数据库中读取数据帧(DataFrame)...
1.pandas.read_sql(sql,con,index_col = None,coerce_float = True,params = None,parse_dates = None,colu ...
最新文章
- CVPR 2022官方发布重要通知,禁止审稿期公开传播论文,静默期4个多月
- 这是Nginx的负载均衡配置方法
- linux系统结构,文件寻址,文件管理编辑,正则表达式
- MyBatis在insert插入操作时返回主键ID的配置
- 为什么需要消息队列MQ
- python匿名函数里用for_请问这段Python代码如何用匿名函数简化?
- 双系统linux进了grub,windows linux双系统开机后进去grub如何修复
- 7-69 超市促销 (6 分)
- detachedcriteria查询去重_sql的简单查询
- 丁胖胖眼中的WINDOWS操作系统(一)
- JavaScript文件存储信息对象cookie编码生存期
- [Swift]LeetCode921.使括号有效的最少添加 | Minimum Add to Make Parentheses Valid
- float,double和decimal类型
- 毕业设计2- MPU6050传感器调试记录(STM32CubeMX+STM32F103C8T6)
- jQuery - 不同版本的差异汇总(版本选择建议)
- linux中怎么卸载桌面图标,如何从Ubuntu 18.04桌面上删除垃圾桶图标
- 博弈:唯冠和苹果的iPad商标案之争
- Java 导出 PDF之固定模板导出
- 时势下的HMS和GMS的前世今生——前生篇
- REST-Assured,接口自动化的 “瑞士军刀“- 断言篇