![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
using
System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace SqlHelpserDemo
{
public class SQLHelper_PROC
{
private static string connectionString = " server=.;uid=sa;pwd=123456;database=db_10 " ;
private static SqlConnection sqlConn;
/// < summary>
///
/// < /summary>
/// < param name="sql">< /param>
/// < returns>< /returns>
///
public static SqlDataReader GetDataReader( string sql) {
try {
sqlConn = new SqlConnection(connectionString);
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand(sql,sqlConn);
SqlDataReader sqlDr =
sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
return sqlDr;
} catch (SqlException ex){
throw ex;
}
}
public static object ExecScalar( string sql){
try {
sqlConn = new SqlConnection(connectionString);
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand(sql, sqlConn);
object obj =
sqlCmd.ExecuteScalar();
return obj;
} catch (SqlException ex){
throw ex;
} finally {
sqlConn.Close();
}
}
/// < summary>
/// ASP.NET数据库驱动类:执行带参的命令式的存储过程
/// < /summary>
/// < param name="procName"> 存储过程名称 < /param>
/// < param name="paras"> 为存储过程的参数解决赋参的SqlParameter对象数组
/// (每一个SqlParameter对象为一个参数解决赋参) < /param>
/// < returns> 存储过程的返回值 < /returns>
public static int ExecuteProc1( string procName,
SqlParameter[] paras){
try {
sqlConn = new SqlConnection(connectionString);
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand(procName, sqlConn); // 执行存储过程类型
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddRange(paras);
SqlParameter p = new SqlParameter(); // 取存储过程的返回值
p.Direction = ParameterDirection.ReturnValue;
p.SqlDbType = SqlDbType.Int;
sqlCmd.Parameters.Add(p);
sqlCmd.ExecuteNonQuery();
int v = p.Value == null ?- 1 :Convert.ToInt32(p.Value);
return v;
} catch (SqlException ex){
throw ex;
} finally {
sqlConn.Close();
}
}
/// < summary>
/// ASP.NET数据库驱动类:执行带参的查询式的存储过程
/// < /summary>
/// < param name="procName"> 存储过程名称 < /param>
/// < param name="paras"> 为存储过程的参数解决赋参的SqlParameter对象数组
/// (每一个SqlParameter对象为一个参数解决赋参) < /param>
/// < returns> 存储过程执行完毕后如果在数据库服务器端形成一个
/// 查询结果集,则返回指向该结果集的一个数据读取器对象 < /returns>
public static SqlDataReader ExecuteProc2( string procName, SqlParameter[] paras)
{
try
{
sqlConn = new SqlConnection(connectionString);
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand(procName, sqlConn); // 执行存储过程类型
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddRange(paras);
SqlDataReader sqlDr = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
return sqlDr;
}
catch (SqlException ex)
{
throw ex;
}
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace SqlHelpserDemo
{
public class SQLHelper_PROC
{
private static string connectionString = " server=.;uid=sa;pwd=123456;database=db_10 " ;
private static SqlConnection sqlConn;
/// < summary>
///
/// < /summary>
/// < param name="sql">< /param>
/// < returns>< /returns>
///
public static SqlDataReader GetDataReader( string sql) {
try {
sqlConn = new SqlConnection(connectionString);
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand(sql,sqlConn);
SqlDataReader sqlDr =
sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
return sqlDr;
} catch (SqlException ex){
throw ex;
}
}
public static object ExecScalar( string sql){
try {
sqlConn = new SqlConnection(connectionString);
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand(sql, sqlConn);
object obj =
sqlCmd.ExecuteScalar();
return obj;
} catch (SqlException ex){
throw ex;
} finally {
sqlConn.Close();
}
}
/// < summary>
/// ASP.NET数据库驱动类:执行带参的命令式的存储过程
/// < /summary>
/// < param name="procName"> 存储过程名称 < /param>
/// < param name="paras"> 为存储过程的参数解决赋参的SqlParameter对象数组
/// (每一个SqlParameter对象为一个参数解决赋参) < /param>
/// < returns> 存储过程的返回值 < /returns>
public static int ExecuteProc1( string procName,
SqlParameter[] paras){
try {
sqlConn = new SqlConnection(connectionString);
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand(procName, sqlConn); // 执行存储过程类型
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddRange(paras);
SqlParameter p = new SqlParameter(); // 取存储过程的返回值
p.Direction = ParameterDirection.ReturnValue;
p.SqlDbType = SqlDbType.Int;
sqlCmd.Parameters.Add(p);
sqlCmd.ExecuteNonQuery();
int v = p.Value == null ?- 1 :Convert.ToInt32(p.Value);
return v;
} catch (SqlException ex){
throw ex;
} finally {
sqlConn.Close();
}
}
/// < summary>
/// ASP.NET数据库驱动类:执行带参的查询式的存储过程
/// < /summary>
/// < param name="procName"> 存储过程名称 < /param>
/// < param name="paras"> 为存储过程的参数解决赋参的SqlParameter对象数组
/// (每一个SqlParameter对象为一个参数解决赋参) < /param>
/// < returns> 存储过程执行完毕后如果在数据库服务器端形成一个
/// 查询结果集,则返回指向该结果集的一个数据读取器对象 < /returns>
public static SqlDataReader ExecuteProc2( string procName, SqlParameter[] paras)
{
try
{
sqlConn = new SqlConnection(connectionString);
sqlConn.Open();
SqlCommand sqlCmd = new SqlCommand(procName, sqlConn); // 执行存储过程类型
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.AddRange(paras);
SqlDataReader sqlDr = sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
return sqlDr;
}
catch (SqlException ex)
{
throw ex;
}
}
}
}
留着 明天多练习几遍