当前位置:  编程技术>.net/c#/asp.net

C#中如何执行存储过程方法

    来源: 互联网  发布时间:2014-10-17

    本文导语:  功能 :  根据调用的方法名称  反射动态调用  sql Command 的方法 代码如下: ///     /// 存储过程的属性     /// ProcName 存储过程的名称    /// MethodName 执行SqlCommand 方法的名称    /// PrmList 存储过程的参数    ///     public...

功能 :  根据调用的方法名称  反射动态调用  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#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C# 执行bat批处理文件的小例子
  • C#实现将记事本中的代码编译成可执行文件的方法
  • 使用 C# 动态编译代码和执行的代码
  • C#实现终止正在执行的线程
  • C#中执行批处理文件(*.bat)的方法代码
  • PowerShell 定时执行.Net(C#)程序的方法
  • C#中验证sql语句是否正确(不执行语句)
  • C#代码验证sql语句是否正确(只验证不执行sql)的方法
  • c#执行外部命令示例分享
  • c#动态编译执行对象方法示例 运用映射机制创建对象
  • javascript函数中执行c#函数的方法
  • C#计算代码执行时间的方法
  • linux操作系统安装MONO执行C#程序的详解步骤
  • C#执行Javascript代码的几种方法总结
  • c#中executereader执行查询示例分享
  • 解析C#中用Process类杀死进程,执行命令的深入分析
  • 带着问题读CLR via C#(笔记一)CLR的执行模型
  • c#实现用SQL池,多线程定时批量执行SQL语句的方法
  • Asp.Net(C#)自动执行计划任务的程序实例分析分享
  • 使用Statement.java里的execute执行存储过程问题
  • 关于如何使用shell自动执行一个sybase的存储过程
  • linux下利用定时任务执行db2存储过程
  • 返回SQL执行时间的存储过程
  • mysql 动态执行存储过程语句
  • MySQL 存储过程中执行动态SQL语句的方法
  • 存储过程执行错误: 对只转发结果集的无效操作?解决后定送100分。
  • 想写个shell脚本调用mysql的存储过程,怎么改都执行不了。。。
  • Linux下用SHELL脚本执行带输入输出参数的ORACLE存储过程并得到结果
  • 在SQL Server启动时自动执行存储过程。第1/2页
  • sql server 存储过程的执行
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C中用system系统调用执行command,执行过程中死锁,如何处理?
  • 怎么在一个程序的执行过程中中止执行它?比如一个按钮的响应程序中,执行一半中止??20分!!!
  • shell调用oracle储存过程,怎么判断储存过程执行结果是否正确
  • 程序运行过程中改变用户执行权限
  • 请教这种循环的执行过程
  • 如何理解make的执行过程?
  • php trim函数执行过程解析
  • 如何在DOS下执行一个包内的主过程?
  • 一个小问题,JAVA中计算某个过程的执行时间,回答了马上给分,10分钟内响应啊
  • oracle sql执行过程(流程图)
  • 求教:一进程执行过程中被同一外部中断程序大量反复中断会不会引起内核栈溢出?
  • 如何在UNIX启动过程中自动执行某一命令?
  • 请问listen函数的执行过程
  • 请教由一个源文件到程序最终执行过程的几个问题
  • JBUILDER如何执行ORACLE的储存过程
  • 谁能解释一下该程序的执行过程
  • 请解释这个线程的问题,讲讲它的执行过程!
  • Oracle过程中执行动态SQL或DDL语句
  • 加载内核模块运行helloworld与应用程序helloworld执行过程的区别?
  • 虚函数被类的构造析构函数和成员函数调用虚函数的执行过程
  • 虚函数被类的构造析构函数和成员函数调用虚函数的执行过程 iis7站长之家
  • 我用GCC生成的可执行文件无法直接在shell命令行下执行,这是为什么?可以用调试器调入执行。我用Red Hat7.0
  • linux下通过crond实现自动执行程序
  • 如何实现一个线程组内多线程的非同不执行,即一个线程执行完毕后再执行下一个线程???
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • 请问:我发现如果在/usr/local/bin 与/usr/bin下都有同一个执行文件时,当在shell下执行时,只会执行/usr/local/bin,下的,怎么改过来?
  • Microsoft IE MSHTML内存破坏远程代码执行漏洞
  • SUSE10下,如何使用perl语言执行一条语句:从一台机器telnet到远端另一台机器,在远端机器上执行命令,并能获取到执行结果。请高手指点,Very 谢谢~
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我在UNIX下用PRO*C写了个程序,每次执行都得一个多小时,我想把它放到后台执行,也就是我想交给服务器执行,而我想产掉终端窗口,应该怎么做呢
  • linux下不使用sudo命令执行docker的操作步骤


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3