C# DBsqlHelper与DBOracleHelper 的写法

首先是sqlhelper的
首先引入需要的使用类的命名空间

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
  //sqlserver的连接数据库的字符串
        private static readonly string ConStr = ConfigurationManager.ConnectionStrings["config"].ConnectionString;
        //字符串写法 "Data Source=服务器名称; Initial Catalog=数据库名; User ID=数据库登录名;Password=数据库登录密码";
        /// <summary>
        /// 查询数据返回datatable
        /// </summary>
        /// <param name="sql">传入的SQL语句</param>
        /// <param name="type">查询的类型</param>
        /// <returns>返回的结果</returns>
        public static DataTable Fill(string sql, CommandType type)
        {
            DataTable dt = new DataTable();
            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, ConStr))
            {
                adapter.SelectCommand.CommandType = type;
                adapter.Fill(dt);
            }
            return dt;
        }
        /// <summary>
        /// 带有参数的查询数据返回datatable
        /// </summary>
        /// <param name="sql">传入的SQL语句</param>
        /// <param name="type">查询的类型</param>
        /// <param name="ps">传入的参数</param>
        /// <returns>返回的结果</returns>
        public static DataTable Fill(string sql, CommandType type, params SqlParameter[] ps)
        {
            DataTable dt = new DataTable();
            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, ConStr))
            {
                adapter.SelectCommand.CommandType = type;
                if (ps != null)
                {
                    adapter.SelectCommand.Parameters.AddRange(ps);
                }
                adapter.Fill(dt);
            }
            return dt;
        }
        /// <summary>
        /// 带有参数的查询数据返回sqldatareader大数据量查询用这个方法比较节省资源
        /// </summary>
        /// <param name="sql">传入的SQL语句</param>
        /// <param name="type">查询的类型</param>
        /// <param name="pam">传入的参数</param>
        /// <returns>返回的结果前台调用需要循环DataReader</returns>
        public static SqlDataReader DataReader(string sql, CommandType type, SqlParameter[] pam)
        {
            SqlConnection Cn = new SqlConnection(ConStr);
            using (SqlCommand cmd = new SqlCommand(sql, Cn))
            {
                cmd.CommandType = type;
                if (pam != null)
                {
                    cmd.Parameters.AddRange(pam);
                }
                try
                {
                    Cn.Open();
                    return cmd.ExecuteReader(CommandBehavior.CloseConnection);
                }
                catch (Exception)
                {
                    Cn.Close();
                    Cn.Dispose();
                    throw;
                }
            }
        }
        /// <summary>
        /// 返回首行首列的执行结果
        /// </summary>
        /// <param name="sql">传入的SQL语句</param>
        /// <param name="type">执行的类型</param>
        /// <param name="ps">传入的参数</param>
        /// <returns>返回结果</returns>
        public static object ExecuteScalar(string sql, CommandType type, params SqlParameter[] ps)
        {
            using (SqlConnection Cn=new SqlConnection(ConStr))
            {
                using (SqlCommand cmd=new SqlCommand(sql,Cn))
                {
                    cmd.CommandType = type;
                    if (ps!=null)
                    {
                        cmd.Parameters.AddRange(ps);
                    }
                    Cn.Open();
                    return cmd.ExecuteScalar();
                }
            }
        }
        /// <summary>
        /// 执行add,update,delete 方法
        /// </summary>
        /// <param name="sql">传入的SQL语句</param>
        /// <param name="type">执行的类型</param>
        /// <param name="ps">传入的参数</param>
        /// <returns>返回结果</returns>
        public static int ExecuteNonQuery(string sql, CommandType type, params SqlParameter[] ps)
        {
            using (SqlConnection Cn=new SqlConnection(ConStr))
            {
                using (SqlCommand cmd=new SqlCommand(sql,Cn))
                {
                    cmd.CommandType = type;
                    if (ps!=null)
                    {
                        cmd.Parameters.AddRange(ps);
                    }
                    Cn.Open();
                    return cmd.ExecuteNonQuery();
                }
            }
        }

oraclehelper的
得引用第三方的组件 Oracle.ManagedDataAccess.dll
首先引入使用类的命名空间

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;
using System.Configuration;
using System.Data;
//连接字符串Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=这里填写服务器名称)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=数据库用户名;Password=登录密码
 public static int ExecuteNonQuery(string sql, CommandType type, params OracleParameter[] ps)
       {
           using (OracleConnection Cn=new OracleConnection(conStr))
           {
               Cn.Open();
               OracleCommand cmd = new OracleCommand(sql, Cn);
               cmd.CommandType = type;
                   if (ps!=null)
                   {
                       cmd.Parameters.AddRange(ps);
                   }
                  
               return cmd.ExecuteNonQuery();
           }
       }
       public static object ExeuteScalary(string sql, CommandType type, OracleParameter[] ps)
       {
           using (OracleConnection Cn=new OracleConnection(conStr))
           {
               using (OracleCommand cmd=new OracleCommand(sql,Cn))
               {
                   cmd.CommandType = type;
                   if (ps!=null)
                   {
                       cmd.Parameters.AddRange(ps);
                   }
                   Cn.Open();
                   return cmd.ExecuteScalar();
               }

           }
       }
       public static DataTable FillQuery(string sql, CommandType type, params OracleParameter[] ps)
       {
           DataTable dt = new DataTable();
           using (OracleDataAdapter adapter=new OracleDataAdapter(sql,conStr))
           {
               adapter.SelectCommand.CommandType=type;
               if (ps!=null)
               {
                   adapter.SelectCommand.Parameters.AddRange(ps);
               };
               adapter.Fill(dt);
           }
           return dt;
       }
       public static OracleDataReader Reader(string sql, CommandType type, params  OracleParameter[] ps)
       {
           OracleConnection Cn = new OracleConnection(conStr);

           using (OracleCommand cmd=new OracleCommand(sql,Cn))
           {
               cmd.CommandType = type;
               if (ps!=null)
               {
                   cmd.Parameters.AddRange(ps);
               }
               try
               {
                   Cn.Open();
                  return cmd.ExecuteReader(CommandBehavior.CloseConnection);
               }
               catch (Exception)
               {
                   Cn.Close();
                   Cn.Dispose();
                   throw;
               }
           }
       }

sqlhelper 和oraclehelper的在传入参数的时候有区别
sqlhelper 传入参数用@ oracle传入参数用 :
“select * from yh where id=@id” sql的
“select * from yh where id=:id” oracle的

***注意,在oraclehelper中传入的sql语句末尾不能有;号 否则程序会报错误,外部组件异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值