该类的主要作用是简化连接SqlServer数据库时的工作
<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="sqlCon" connectionString="Data Source=.;Initial Catalog=mydb;User ID=sa;Password=123456"/> </connectionStrings> </configuration>
using System.Configuration; using System.Data.SqlClient; using System.Data; 在“引用”中需要添加System.Configuration
class SqlHelper { private static string connStr = ConfigurationManager.ConnectionStrings["sqlCon"].ConnectionString; //使用长度可变参数来简化 public static int ExecuteNonQuery(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); 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(); } } } //只用来执行查询结果比较少的sql,查询结果存入本地 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]; } } } }
实现的功能是:
1、ExecuteNonQuery方法的作用:执行SQL语句,例如:更新、插入、查询
2、ExecuteScalar方法的作用是:只返回一个数据的场合,例如,得到count(*),或者MAX()等,对于多余一个结果的数据,只会返回第一行第一列的数据
3、ExecuteDataTable方法的作用是:返回需要查询的数据返回到一个TataTable中,方便数据的本地操作
注意:SqlParameter 参数化查询,防止SQL注入漏洞