数据库操作公共类总结

巧了我就是萌 提交于 2020-03-27 04:12:28

1、打开数据库链接

        /// <summary>
        
/// 打开数据库连接.
        
/// </summary>

        private void Open()
        
{
            
// 打开数据库连接
            if (con == null)
            
{
                con 
= new SqlConnection(WebConfigurationManager.AppSettings["ConnectionString"]);
                
//con = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
            }

            
if (con.State == System.Data.ConnectionState.Closed)
            
{
                
try
                
{
                    con.Open();
                }

                
catch (Exception ex)
                
{
                    
                }

            }

        }
2、关闭数据库连接
        /// <summary>
        
/// 关闭数据库连接
        
/// </summary>

        public void Close()
        
{
            
if (con != null)
                con.Close();
        }

3、执行存储过程
        /// <summary>
        
/// 执行存储过程
        
/// </summary>
        
/// <param name="procName">存储过程的名称</param>
        
/// <returns>返回存储过程返回值</returns>

        public int RunProc2(string procName)
        
{
            SqlCommand cmd 
= CreateCommand(procName, null);
            cmd.ExecuteNonQuery();
            
this.Close();
            
return (int)cmd.Parameters["ReturnValue"].Value;
        }

4、创建SqlCommand对象来执行储存过程

        /// <summary>
        
/// 创建一个SqlCommand对象以此来执行存储过程
        
/// </summary>
        
/// <param name="procName">存储过程的名称</param>
        
/// <param name="prams">存储过程所需参数</param>
        
/// <returns>返回SqlCommand对象</returns>

        private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
        
{
            
// 确认打开连接
            Open();
            SqlCommand cmd 
= new SqlCommand(procName, con);
            cmd.CommandType 
= CommandType.StoredProcedure;

            
// 依次把参数传入存储过程
            if (prams != null)
            
{
                
foreach (SqlParameter parameter in prams)
                    cmd.Parameters.Add(parameter);
            }


            
// 加入返回参数
            cmd.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, 4,ParameterDirection.ReturnValue, false00,string.Empty, DataRowVersion.Default, null));
            
return cmd;
        }

5、传入参数

        /// <summary>
        
/// 传入输入参数
        
/// </summary>
        
/// <param name="ParamName">存储过程名称</param>
        
/// <param name="DbType">参数类型</param></param>
        
/// <param name="Size">参数大小</param>
        
/// <param name="Value">参数值</param>
        
/// <returns>新的 parameter 对象</returns>

        public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
        
{
            
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
        }

 6、传入数据库返回参数

 

        /// <summary>
        
/// 传入返回值参数
        
/// </summary>
        
/// <param name="ParamName">存储过程名称</param>
        
/// <param name="DbType">参数类型</param>
        
/// <param name="Size">参数大小</param>
        
/// <returns>新的 parameter 对象</returns>

        public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size)
        
{
            
return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
        }
    

7、生成储存过程参数

        /// <summary>
        
/// 生成存储过程参数
        
/// </summary>
        
/// <param name="ParamName">存储过程名称</param>
        
/// <param name="DbType">参数类型</param>
        
/// <param name="Size">参数大小</param>
        
/// <param name="Direction">参数方向</param>
        
/// <param name="Value">参数值</param>
        
/// <returns>新的 parameter 对象</returns>

        public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
        
{
            SqlParameter param;

            
if (Size > 0)
                param 
= new SqlParameter(ParamName, DbType, Size);
            
else
                param 
= new SqlParameter(ParamName, DbType);

            param.Direction 
= Direction;
            
if (!(Direction == ParameterDirection.Output && Value == null))
                param.Value 
= Value;

            
return param;
        }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!