sqllink.cs c#数据库操作类

来源:互联网 发布:js实现div旋转 编辑:程序博客网 时间:2024/05/17 08:28

sqllink.cs c#数据库操作类

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace Chenzhang
{

 /// <summary>
 /// SQL Server
数据库操作组件
 /// </summary>
 public class SqlLink :IDisposable
 {
  private SqlDataAdapter dsCommand;
  private AppSettingsReader appsettingsreader;
  private String cn;

  /// <summary>
  /// Constructor
  /// </summary>
  public SqlLink()
  {
   dsCommand =new SqlDataAdapter() ;
   appsettingsreader = new AppSettingsReader();
   cn=(string)appsettingsreader.GetValue("SQLConnectionString", typeof(string));
  }

  /// <summary>
  /// Dispose
  /// </summary>
  public void Dispose()
  {
   Dispose(true);
   GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing)
  {
   if (!disposing)
    return;

   if (dsCommand != null)
   {
    //dispose dsCommand.SelectCommand
    if (dsCommand.SelectCommand!=null)
    {
     if (dsCommand.SelectCommand.Connection!=null)
      dsCommand.SelectCommand.Connection.Dispose();
     dsCommand.SelectCommand.Dispose();
    }

    //dispose dsCommand.InsertCommand
    if (dsCommand.InsertCommand!=null)
    {
     if (dsCommand.InsertCommand.Connection!=null)
      dsCommand.InsertCommand.Connection.Dispose();
     dsCommand.InsertCommand.Dispose();
    }

    //dispose dsCommand.UpdateCommand
    if (dsCommand.UpdateCommand!=null)
    {
     if (dsCommand.UpdateCommand.Connection!=null)
      dsCommand.UpdateCommand.Connection.Dispose();
     dsCommand.UpdateCommand.Dispose();
    }

    dsCommand.Dispose();
    dsCommand=null;
   }

    
  }
  /// <summary>
  ///
获取select语句查询结果记录集
  /// </summary>
  /// <param name="sql">select
语句</param>
  /// <returns>
结果记录集</returns>
  public DataTable SelectSql(String sql)
  {
   dsCommand.SelectCommand=new SqlCommand();
   dsCommand.SelectCommand.Connection=new SqlConnection(cn);
   DataSet ds=new DataSet() ;
   dsCommand.SelectCommand.CommandText=sql;
   dsCommand.SelectCommand.CommandType=CommandType.Text;
   dsCommand.SelectCommand.Connection.Open();
   try
   {
    dsCommand.Fill(ds,"result");
    return ds.Tables["result"];
   }
   catch
   {
    return null;
   }
   finally
   {
    if (dsCommand.SelectCommand!=null)
    {
     if (dsCommand.SelectCommand.Connection!=null)
      dsCommand.SelectCommand.Connection.Dispose();
     dsCommand.SelectCommand.Dispose();
    }
    dsCommand.Dispose();
    ds.Dispose();
   }
  }
  /// <summary>
  ///
获取存储过程运行结果记录集,存储过程不带参数
  /// </summary>
  /// <param name="sp_name">
存储过程名称</param>
  /// <returns>
结果记录集</returns>
  public DataTable SelectSql_sp(String sp_name)
  {
   dsCommand.SelectCommand=new SqlCommand();
   dsCommand.SelectCommand.Connection=new SqlConnection(cn);
   DataSet ds=new DataSet() ;
   dsCommand.SelectCommand.CommandText=sp_name;
   dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
   dsCommand.SelectCommand.Connection.Open();
   try
   {
    dsCommand.Fill(ds,"result");
    return ds.Tables["result"];
   }
   catch
   {
    return null;
   }
   finally
   {
    if (dsCommand.SelectCommand!=null)
    {
     if (dsCommand.SelectCommand.Connection!=null)
      dsCommand.SelectCommand.Connection.Dispose();
     dsCommand.SelectCommand.Dispose();
    }
    dsCommand.Dispose();
    ds.Dispose();
   }
  }
  /// <summary>
  ///
获取存储过程运行结果记录集,存储过程带1个参数
  /// </summary>
  /// <param name="sp_name">
存储过程名称</param>
  /// <param name="par1_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par1_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par1_value">
存储过程参数值,如"18","张三"</param>
  /// <returns>
结果记录集</returns>
  public DataTable SelectSql_sp_par1(String sp_name,String par1_name,String par1_type,String par1_value)
  {
   int par1_dbtype=0;
   if (par1_type.ToLower()=="varchar") par1_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par1_type.ToLower()=="string") par1_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par1_type.ToLower()=="integer") par1_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par1_type.ToLower()=="int") par1_dbtype=Convert.ToInt16(SqlDbType.Int);
   dsCommand.SelectCommand=new SqlCommand();
   dsCommand.SelectCommand.Connection=new SqlConnection(cn);
   DataSet ds=new DataSet() ;
   dsCommand.SelectCommand.CommandText=sp_name;
   dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
   SqlParameter objPar;
   objPar=dsCommand.SelectCommand.Parameters.Add(par1_name,par1_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par1_value;
   dsCommand.SelectCommand.Connection.Open();
   try
   {
    dsCommand.Fill(ds,"result");
    return ds.Tables["result"];
   }
   catch
   {
    return null;
   }
   finally
   {
    if (dsCommand.SelectCommand!=null)
    {
     if (dsCommand.SelectCommand.Connection!=null)
      dsCommand.SelectCommand.Connection.Dispose();
     dsCommand.SelectCommand.Dispose();
    }
    dsCommand.Dispose();
    ds.Dispose();
   }
  }
  /// <summary>
  ///
获取存储过程运行结果记录集,存储过程带2个参数
  /// </summary>
  /// <param name="sp_name">
存储过程名称</param>
  /// <param name="par1_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par1_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par1_value">
存储过程参数值,如"18","张三"</param>
  /// <param name="par2_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par2_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par2_value">
存储过程参数值,如"18","张三"</param>
  /// <returns>
结果记录集</returns>
  public DataTable SelectSql_sp_par2(String sp_name,String par1_name,String par1_type,String par1_value,String par2_name,String par2_type,String par2_value)
  {
   int par1_dbtype=0;
   int par2_dbtype=0;
   if (par1_type.ToLower()=="varchar") par1_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par1_type.ToLower()=="string") par1_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par1_type.ToLower()=="integer") par1_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par1_type.ToLower()=="int") par1_dbtype=Convert.ToInt16(SqlDbType.Int);
   if (par2_type.ToLower()=="varchar") par2_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par2_type.ToLower()=="string") par2_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par2_type.ToLower()=="integer") par2_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par2_type.ToLower()=="int") par2_dbtype=Convert.ToInt16(SqlDbType.Int);
   dsCommand.SelectCommand=new SqlCommand();
   dsCommand.SelectCommand.Connection=new SqlConnection(cn);
   DataSet ds=new DataSet() ;
   dsCommand.SelectCommand.CommandText=sp_name;
   dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
   SqlParameter objPar;
   objPar=dsCommand.SelectCommand.Parameters.Add(par1_name,par1_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par1_value;
   objPar=dsCommand.SelectCommand.Parameters.Add(par2_name,par2_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par2_value;
   dsCommand.SelectCommand.Connection.Open();
   try
   {
    dsCommand.Fill(ds,"result");
    return ds.Tables["result"];
   }
   catch
   {
    return null;
   }
   finally
   {
    if (dsCommand.SelectCommand!=null)
    {
     if (dsCommand.SelectCommand.Connection!=null)
      dsCommand.SelectCommand.Connection.Dispose();
     dsCommand.SelectCommand.Dispose();
    }
    dsCommand.Dispose();
    ds.Dispose();
   }
  }
  /// <summary>
  ///
获取存储过程运行结果记录集,存储过程带3个参数
  /// </summary>
  /// <param name="sp_name">
存储过程名称</param>
  /// <param name="par1_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par1_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par1_value">
存储过程参数值,如"18","张三"</param>
  /// <param name="par2_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par2_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par2_value">
存储过程参数值,如"18","张三"</param>
  /// <param name="par3_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par3_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par3_value">
存储过程参数值,如"18","张三"</param>
  /// <returns>
结果记录集</returns>
  public DataTable SelectSql_sp_par3(String sp_name,String par1_name,String par1_type,String par1_value,String par2_name,String par2_type,String par2_value,String par3_name,String par3_type,String par3_value)
  {
   int par1_dbtype=0;
   int par2_dbtype=0;
   int par3_dbtype=0;
   if (par1_type.ToLower()=="varchar") par1_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par1_type.ToLower()=="string") par1_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par1_type.ToLower()=="integer") par1_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par1_type.ToLower()=="int") par1_dbtype=Convert.ToInt16(SqlDbType.Int);
   if (par2_type.ToLower()=="varchar") par2_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par2_type.ToLower()=="string") par2_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par2_type.ToLower()=="integer") par2_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par2_type.ToLower()=="int") par2_dbtype=Convert.ToInt16(SqlDbType.Int);
   if (par3_type.ToLower()=="varchar") par3_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par3_type.ToLower()=="string") par3_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par3_type.ToLower()=="integer") par3_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par3_type.ToLower()=="int") par3_dbtype=Convert.ToInt16(SqlDbType.Int);
   dsCommand.SelectCommand=new SqlCommand();
   dsCommand.SelectCommand.Connection=new SqlConnection(cn);
   DataSet ds=new DataSet() ;
   dsCommand.SelectCommand.CommandText=sp_name;
   dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
   SqlParameter objPar;
   objPar=dsCommand.SelectCommand.Parameters.Add(par1_name,par1_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par1_value;
   objPar=dsCommand.SelectCommand.Parameters.Add(par2_name,par2_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par2_value;
   objPar=dsCommand.SelectCommand.Parameters.Add(par3_name,par3_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par3_value;
   dsCommand.SelectCommand.Connection.Open();
   try
   {
    dsCommand.Fill(ds,"result");
    return ds.Tables["result"];
   }
   catch
   {
    return null;
   }
   finally
   {
    if (dsCommand.SelectCommand!=null)
    {
     if (dsCommand.SelectCommand.Connection!=null)
      dsCommand.SelectCommand.Connection.Dispose();
     dsCommand.SelectCommand.Dispose();
    }
    dsCommand.Dispose();
    ds.Dispose();
   }
  }
  /// <summary>
  ///
获取存储过程运行结果记录集,存储过程带4个参数
  /// </summary>
  /// <param name="sp_name">
存储过程名称</param>
  /// <param name="par1_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par1_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par1_value">
存储过程参数值,如"18","张三"</param>
  /// <param name="par2_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par2_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par2_value">
存储过程参数值,如"18","张三"</param>
  /// <param name="par3_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par3_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par3_value">
存储过程参数值,如"18","张三"</param>
  /// <param name="par4_name">
存储过程参数名称,如"@Age","@StudentName"</param>
  /// <param name="par4_type">
存储过程参数类型,如"int","varchar"</param>
  /// <param name="par4_value">
存储过程参数值,如"18","张三"</param>
  /// <returns>
结果记录集</returns>
  public DataTable SelectSql_sp_par4(String sp_name,String par1_name,String par1_type,String par1_value,String par2_name,String par2_type,String par2_value,String par3_name,String par3_type,String par3_value,String par4_name,String par4_type,String par4_value)
  {
   int par1_dbtype=0;
   int par2_dbtype=0;
   int par3_dbtype=0;
   int par4_dbtype=0;
   if (par1_type.ToLower()=="varchar") par1_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par1_type.ToLower()=="string") par1_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par1_type.ToLower()=="integer") par1_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par1_type.ToLower()=="int") par1_dbtype=Convert.ToInt16(SqlDbType.Int);
   if (par2_type.ToLower()=="varchar") par2_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par2_type.ToLower()=="string") par2_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par2_type.ToLower()=="integer") par2_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par2_type.ToLower()=="int") par2_dbtype=Convert.ToInt16(SqlDbType.Int);
   if (par3_type.ToLower()=="varchar") par3_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par3_type.ToLower()=="string") par3_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par3_type.ToLower()=="integer") par3_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par3_type.ToLower()=="int") par3_dbtype=Convert.ToInt16(SqlDbType.Int);
   if (par4_type.ToLower()=="varchar") par4_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par4_type.ToLower()=="string") par4_dbtype=Convert.ToInt16(SqlDbType.VarChar);
   else if (par4_type.ToLower()=="integer") par4_dbtype=Convert.ToInt16(SqlDbType.Int);
   else if (par4_type.ToLower()=="int") par4_dbtype=Convert.ToInt16(SqlDbType.Int);
   dsCommand.SelectCommand=new SqlCommand();
   dsCommand.SelectCommand.Connection=new SqlConnection(cn);
   DataSet ds=new DataSet() ;
   dsCommand.SelectCommand.CommandText=sp_name;
   dsCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
   SqlParameter objPar;
   objPar=dsCommand.SelectCommand.Parameters.Add(par1_name,par1_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par1_value;
   objPar=dsCommand.SelectCommand.Parameters.Add(par2_name,par2_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par2_value;
   objPar=dsCommand.SelectCommand.Parameters.Add(par3_name,par3_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par3_value;
   objPar=dsCommand.SelectCommand.Parameters.Add(par4_name,par4_dbtype);
   objPar.Direction=ParameterDirection.Input;
   objPar.Value=par4_value;
   dsCommand.SelectCommand.Connection.Open();
   try
   {
    dsCommand.Fill(ds,"result");
    return ds.Tables["result"];
   }
   catch
   {
    return null;
   }
   finally
   {
    if (dsCommand.SelectCommand!=null)
    {
     if (dsCommand.SelectCommand.Connection!=null)
      dsCommand.SelectCommand.Connection.Dispose();
     dsCommand.SelectCommand.Dispose();
    }
    dsCommand.Dispose();
    ds.Dispose();
   }
  }  /// <summary>
  ///
运行insert语句,并返回成功与否
  /// </summary>
  /// <param name="sql">insert
语句</param>
  /// <returns>
成功与否</returns>
  public bool InsertSql(String sql)
  {
   dsCommand.InsertCommand=new SqlCommand();
   dsCommand.InsertCommand.Connection=new SqlConnection(cn);
   dsCommand.InsertCommand.CommandText=sql;
   dsCommand.InsertCommand.CommandType=CommandType.Text;
   dsCommand.InsertCommand.Connection.Open();
   try
   {
    dsCommand.InsertCommand.ExecuteNonQuery();
    return true;
   }
   catch
   {
    return false;
   }
   finally
   {
    if(dsCommand.InsertCommand!=null)
    {
     if (dsCommand.InsertCommand.Connection!=null)
      dsCommand.InsertCommand.Connection.Dispose();
     dsCommand.InsertCommand.Dispose();
    }
    dsCommand.Dispose();
   }
  }
  /// <summary>
  ///
运行update语句,并返回成功与否
  /// </summary>
  /// <param name="sql">update
语句</param>
  /// <returns>
成功与否</returns>
  public bool UpdateSql(String sql)
  {
   dsCommand.UpdateCommand=new SqlCommand();
   dsCommand.UpdateCommand.Connection=new SqlConnection(cn);
   dsCommand.UpdateCommand.CommandText=sql;
   dsCommand.UpdateCommand.CommandType=CommandType.Text;
   dsCommand.UpdateCommand.Connection.Open();
   try
   {
    dsCommand.UpdateCommand.ExecuteNonQuery();
    return true;
   }
   catch
   {
    return false;
   }
   finally
   {
    if (dsCommand.UpdateCommand!=null)
    {
     if (dsCommand.UpdateCommand.Connection!=null)
      dsCommand.UpdateCommand.Connection.Dispose();
     dsCommand.UpdateCommand.Dispose();
    }
    dsCommand.Dispose();
   }
  }
  /// <summary>
  ///
运行delete语句,并返回成功与否
  /// </summary>
  /// <param name="sql">delete
语句</param>
  /// <returns>
成功与否</returns>
  public bool DeleteSql(String sql)
  {
   dsCommand.DeleteCommand=new SqlCommand();
   dsCommand.DeleteCommand.Connection=new SqlConnection(cn);
   dsCommand.DeleteCommand.CommandText=sql;
   dsCommand.DeleteCommand.CommandType=CommandType.Text;
   dsCommand.DeleteCommand.Connection.Open();
   try
   {
    dsCommand.DeleteCommand.ExecuteNonQuery();
    return true;
   }
   catch
   {
    return false;
   }
   finally
   {
    if (dsCommand.DeleteCommand!=null)
    {
     if (dsCommand.DeleteCommand.Connection!=null)
      dsCommand.DeleteCommand.Connection.Dispose();
     dsCommand.DeleteCommand.Dispose();
    }
    dsCommand.Dispose();
   }
  }

 }
}

 

原创粉丝点击