手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#中如何执行存储过程方法
C#中如何执行存储过程方法
摘要:功能:根据调用的方法名称反射动态调用sqlCommand的方法复制代码代码如下://////存储过程的属性///ProcName存储过程的名...

功能 : 根据调用的方法名称 反射动态调用 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;

}

}

【C#中如何执行存储过程方法】相关文章:

C#图片压缩的实现方法

C# 拓展方法的简单实例

C# 批处理调用方法

C#中using的三种用法

用C#编写获取远程IP,MAC的方法

C#计算代码执行时间的方法

C#操作注册表的方法

c#中虚函数的相关使用方法

C#中隐式运行CMD命令行窗口的方法

C#线程 BeginInvoke和EndInvoke使用方法

精品推荐
分类导航