ADO.Net之自定义SqlHelper类

来源:互联网 发布:龙瞎皮肤淘宝多少钱 编辑:程序博客网 时间:2024/05/16 11:33

2013年2月3日 天气晴 2月第一篇

数据库课程设计遇到麻烦,关于WPF的一些控件的使用并不怎么熟悉,业务逻辑实现没有思路,有点想撞墙。

关于ADO.Net课程,关于对SQL Server数据库的操作已经稍微有点认识了,下面记录关于自定义SqlHelper类的实现。

第一版:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Configuration;using System.Data.SqlClient;using System.Data;namespace ADO.Net练习3{    class SqlHelper    {        private static string connstr = ConfigurationManager.ConnectionStrings["myconnstr"].ConnectionString;        //封装方法的原则:把不变的写到方法中,把变的放到参数中        public static int ExecuteNonQuery(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();                }            }        }        public static DataTable 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 ds = new DataSet();                    adapter.Fill(ds);                    return ds.Tables[0];                }            }        }    }}


第二版,改变参数传递,增加一个参数数组

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Configuration;using System.Data.SqlClient;using System.Data;namespace ADO.Net练习3{    class SqlHelper    {        private static string connstr = ConfigurationManager.ConnectionStrings["myconnstr"].ConnectionString;        //封装方法的原则:把不变的写到方法中,把变的放到参数中        public static int ExecuteNonQuery(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.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 DataTable 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 ds = new DataSet();                    adapter.Fill(ds);                    return ds.Tables[0];                }            }        }    }}


第三版:传递长度可变参数(改进版)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Configuration;using System.Data.SqlClient;using System.Data;namespace ADO.Net练习3{    class SqlHelper    {        private static string connstr = ConfigurationManager.ConnectionStrings["myconnstr"].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;                    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();                }            }        }        public static DataTable 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 ds = new DataSet();                    adapter.Fill(ds);                    return ds.Tables[0];                }            }        }    }}