手写工具之——SQLHelper
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Configuration; using System.Data.SqlClient; using System.Data; /// <summary> /// SQL帮助器 /// </summary> public class SQLHelper { private static string ConnStr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; //增删改(insert、delete、update) public static int DoNonQuery(string sql, List<SqlParameter> ps = null) { using (SqlConnection conn = new SqlConnection(ConnStr)) { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); if (ps != null) { cmd.Parameters.AddRange(ps.ToArray()); } int RowsAffectedCount = cmd.ExecuteNonQuery(); conn.Close(); return RowsAffectedCount; } } //增删改(insert、delete、update) public static int DoNonQuery(string sql, params SqlParameter[] ps) { using (SqlConnection conn = new SqlConnection(ConnStr)) { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); if (ps != null) { cmd.Parameters.AddRange(ps); } int RowsAffectedCount = cmd.ExecuteNonQuery(); conn.Close(); return RowsAffectedCount; } } //取单行单列对象(insert、select) public static object DoScalar(string sql, List<SqlParameter> ps = null) { using (SqlConnection conn = new SqlConnection(ConnStr)) { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); if (ps != null) { cmd.Parameters.AddRange(ps.ToArray()); } object ScalarObj = cmd.ExecuteScalar(); conn.Close(); return ScalarObj; } } //取单行单列对象(insert、select) public static object DoScalar(string sql, params SqlParameter[] ps) { using (SqlConnection conn = new SqlConnection(ConnStr)) { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); if (ps != null) { cmd.Parameters.AddRange(ps); } object ScalarObj = cmd.ExecuteScalar(); conn.Close(); return ScalarObj; } } //断开式取DataTable对象(select) public static DataTable DoDataTable(string sql, List<SqlParameter> ps = null) { using (SqlConnection conn = new SqlConnection(ConnStr)) { conn.Open(); SqlDataAdapter da = new SqlDataAdapter(sql, conn); if (ps != null) { da.SelectCommand.Parameters.AddRange(ps.ToArray()); } DataSet ds = new DataSet(); da.Fill(ds); conn.Close(); return ds.Tables[0]; } } //断开式取DataTable对象(select) public static DataTable DoDataTable(string sql, params SqlParameter[] ps) { using (SqlConnection conn = new SqlConnection(ConnStr)) { conn.Open(); SqlDataAdapter da = new SqlDataAdapter(sql, conn); if (ps != null) { da.SelectCommand.Parameters.AddRange(ps); } DataSet ds = new DataSet(); da.Fill(ds); conn.Close(); return ds.Tables[0]; } } /* * 下面两个方法新加,未测试 */ //连接式读取数据(select) public static SqlDataReader DoReader(string sql, List<SqlParameter> ps = null) { using (SqlConnection conn = new SqlConnection(ConnStr)) { conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); if (ps != null) { cmd.Parameters.AddRange(ps.ToArray()); } SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection); conn.Close(); return dr; } } //存储过程式取DataTable对象 public static DataTable DoProcedure(string sql, List<SqlParameter> ps = null) { using (SqlConnection conn = new SqlConnection(ConnStr)) { conn.Open(); SqlDataAdapter da = new SqlDataAdapter(sql, conn); //设定命令类型 da.SelectCommand.CommandType = CommandType.StoredProcedure; if (ps != null) { da.SelectCommand.Parameters.AddRange(ps.ToArray()); } DataSet ds = new DataSet(); da.Fill(ds); conn.Close(); return ds.Tables[0]; } } }