C#中如何执行存储过程方法
功能 : 根据调用的方法名称 反射动态调用 sql Command 的方法
/// <summary>
/// 存储过程的属性
/// ProcName 存储过程的名称
/// MethodName 执行SqlCommand 方法的名称
/// PrmList 存储过程的参数
/// </summary>
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;
}
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="ep">执行存储过程的属性
/// ProcName 存储过程的名称
/// MethodName 执行SqlCommand 方法的名称
/// PrmList 存储过程的参数
/// </param>
/// <returns>返回执行的结果</returns>
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;
}
}
相关文章
- Create Procedure AtoC @ChangeMoney Money as Set Nocount ON Declare @String1 char(20) Declare @String2 char(30) ...2016-11-25
- 存储过程在数据库的应用中我们用到的非常的多了,下面我们来看一篇关于PHP操作MSSQL存储过程修改用户密码的例子,具体的如下所示。 mssql2008 存储过程 下面可以直接...2016-11-25
- 引发这个问题思考的是一段js程序的运行结果: 复制代码 代码如下: var i = 0; function a(){ for(i=0;i<20;i++){ } } function b(){ for(i=0;i<3;i++){ a(); } return i; } var Result = b(); 这段程序的运行结果是Re...2014-05-31
- 具体详情请看下文小编给大家带来的知识点。同编写程序类似,存储过程中也有对应的条件判断,功能类似于if、switch。在MySql里面对应的是IF和CASE1、IF判断IF判断的格式是这样的:IF expression THEN commands [ELSEIF ex...2015-10-21
Java使用ScriptEngine动态执行代码(附Java几种动态执行代码比较)
这篇文章主要介绍了Java使用ScriptEngine动态执行代码,并且分享Java几种动态执行代码比较,需要的朋友可以参考下...2021-04-15- v-for标签可以用来遍历数组,将数组的每一个值绑定到相应的视图元素中去,下面这篇文章主要给大家介绍了关于在Vue.js中轻松解决v-for执行出错的三个方案,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2017-06-15
- 本文章来给大家详细介绍在php中如何来调用执行mysql存储过程然后返回由存储过程返回的值了,有需要了解的同学可进入参考。 。调用存储过程的方法。 a。如果存储过...2016-11-25
- 在本篇文章中给大家详细讲述了c#源码的执行过程,对此有需要的朋友们可以学习下。...2020-06-25
- 这篇文章主要介绍了C#调用存储过程的方法,结合实例形式详细分析了各种常用的存储过程调用方法,包括带返回值、参数输入输出等,需要的朋友可以参考下...2020-06-25
- 复制代码 代码如下:call PROCEDURE_split('分享,代码,片段',',');select * from splittable;复制代码 代码如下:drop PROCEDURE if exists procedure_split;CREATE PROCEDURE `procedure_split`( inputstring varc...2014-05-31
- C#中利用ScriptControl动态执行JS和VBS脚本的实现方法,需要的朋友可以参考下...2020-06-25
- 本文主要介绍了4种延时执行的方法,主要包括Update计时器,Invoke,协程,DoTween,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-07-07
- 利用PowerShell可以调用动态页面,然后再用 .bat 执行 PowerShell 脚本,最后把 .bat 添加到服务器的任务计划里面。OK,所有操作都做好了,.Net 定时执行了,是不是呢,有木有呢。...2020-06-25
@PostConstruct在项目启动时被执行两次或多次的原因及分析
这篇文章主要介绍了@PostConstruct在项目启动时被执行两次或多次的原因及分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-03- c#调用存储过程实现登录界面详解...2020-06-25
- 这篇文章主要为大家介绍了python自动化测试selenium执行js脚本的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步...2021-11-13
- 这篇文章主要介绍了C#获取存储过程返回值的方法,大家参考使用吧...2020-06-25
- 这篇文章主要介绍了python 执行函数的九种方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...2021-03-25
- 今天小编就为大家分享一篇C语言中system()执行cmd命令打开关闭程序的方法。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-25
- 这篇文章主要介绍了PostgreSQL 实现sql放入文件批量执行,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04