关于存储过程的SqlHelper

本文提供了一个ASP.NET中进行数据库操作的示例代码,包括使用SqlConnection连接数据库、执行SQL命令、获取数据读取器及执行存储过程等功能。示例展示了如何通过SqlCommand对象执行SQL语句,并处理可能出现的异常。
ExpandedBlockStart.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;
            }
        }      

    }
}

 

留着 明天多练习几遍

转载于:https://www.cnblogs.com/Simcoder/archive/2010/05/05/1727617.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值