using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
namespace _03第四季01SQLHelper
{
class SqlHelper
{
//连接字符串
private static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
#region 版本一
//执行增删改
public static int ExecuteNonQurey(string sql)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
return cmd.ExecuteNonQuery();
}
}
}
//返回一行一列的查询结果
public static object ExecuteScalar(string sql)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
return cmd.ExecuteScalar();
}
}
}
返回多个查询结果,为什么会出错?
使用using(){}在{}之后系统会自动帮我们释放资源,所以在函数返回前连接已经关闭
//public static SqlDataReader ExecuteReader(string sql)
//{
// using (SqlConnection conn = new SqlConnection(connStr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// return cmd.ExecuteReader();
// }
// }
//}
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] spms)
//public static SqlDataReader ExecuteReader(string sql, CommandType cType, params SqlParameter[] spms)
{
SqlConnection conn = new SqlConnection(connStr);
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
//cmd.CommandType = cType;//不设置的话,使用默认
if (spms != null)
cmd.Parameters.AddRange(spms);
try
{
conn.Open();
return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}
catch
{
conn.Close();
conn.Dispose();
throw;
}
}
}
//返回数据集
public static DataSet ExecuteDataSet(string sql)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
return dataset;
}
}
}
//一般查询语句结果只有一个表,所以可以返回DataTable类型
public static DataTable ExecuteDataTable(string sql)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataset = new DataSet();
adapter.Fill(dataset);
return dataset.Tables[0];
}
}
}
#endregion
//#region 版本二
//public static int ExecuteNonQurey(string sql,SqlParameter[] parameters )
//{
// using (SqlConnection conn = new SqlConnection(connStr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// //foreach(SqlParameter param in parameters)
// //{
// // cmd.Parameters.Add(param);
// //}
// cmd.Parameters.AddRange(parameters);//等于foreach的写法
// return cmd.ExecuteNonQuery();
// }
// }
//}
返回一行一列的查询结果
//public static object ExecuteScalar(string sql,SqlParameter[] parameters)
//{
// using (SqlConnection conn = new SqlConnection(connStr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// cmd.Parameters.AddRange(parameters);
// return cmd.ExecuteScalar();
// }
// }
//}
返回数据集
//public static DataSet ExecuteDataSet(string sql,SqlParameter[] parameters)
//{
// using (SqlConnection conn = new SqlConnection(connStr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// cmd.Parameters.AddRange(parameters);
// SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// DataSet dataset = new DataSet();
// adapter.Fill(dataset);
// return dataset;
// }
// }
//}
一般查询语句结果只有一个表,所以可以返回DataTable类型
//public static DataTable ExecuteDataTable(string sql,SqlParameter[] parameters)
//{
// using (SqlConnection conn = new SqlConnection(connStr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// cmd.Parameters.AddRange(parameters);
// SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// DataSet dataset = new DataSet();
// adapter.Fill(dataset);
// return dataset.Tables[0];
// }
// }
//}
//#endregion
#region 版本三 可变参数
//public static int ExecuteNonQurey(string sql,params SqlParameter[] parameters)
//{
// using (SqlConnection conn = new SqlConnection(connStr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// //foreach(SqlParameter param in parameters)
// //{
// // cmd.Parameters.Add(param);
// //}
// cmd.Parameters.AddRange(parameters);//等于foreach的写法
// return cmd.ExecuteNonQuery();
// }
// }
//}
返回一行一列的查询结果
//public static object ExecuteScalar(string sql,params SqlParameter[] parameters)
//{
// using (SqlConnection conn = new SqlConnection(connStr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// cmd.Parameters.AddRange(parameters);
// return cmd.ExecuteScalar();
// }
// }
//}
返回数据集
//public static DataSet ExecuteDataSet(string sql,params SqlParameter[] parameters)
//{
// using (SqlConnection conn = new SqlConnection(connStr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// cmd.Parameters.AddRange(parameters);
// SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// DataSet dataset = new DataSet();
// adapter.Fill(dataset);
// return dataset;
// }
// }
//}
一般查询语句结果只有一个表,所以可以返回DataTable类型
//public static DataTable ExecuteDataTable(string sql,params SqlParameter[] parameters)
//{
// using (SqlConnection conn = new SqlConnection(connStr))
// {
// conn.Open();
// using (SqlCommand cmd = conn.CreateCommand())
// {
// cmd.CommandText = sql;
// cmd.Parameters.AddRange(parameters);
// SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// DataSet dataset = new DataSet();
// adapter.Fill(dataset);
// return dataset.Tables[0];
// }
// }
//}
#endregion
}
}
黑马程序员——手写SQLHelper
最新推荐文章于 2020-06-20 20:48:21 发布