首先是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语句末尾不能有;号 否则程序会报错误,外部组件异常