通过SQLHelper,把以DataSet方式连接数据库的代码放里面,做成三层

SQLHelper类别:

using System.Data.SqlClient;
using System.Configuration;
using System;
using System.Text;
using System.Data;
namespace 尝试封装
{
    class SQLHelper
    {
        public static int ExecuteNonQuery(string sql, params SqlParameter[] paramters)
        {
            String connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    foreach (SqlParameter parameter in paramters)
                    {
                        cmd.Parameters.Add(parameter);
                    }
                    return cmd.ExecuteNonQuery();
                }
             
            }
        }
        public static object ExecuteScalar(string sql, params SqlParameter[] paramters)
        {
            String connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
            using (SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    foreach (SqlParameter parameter in paramters)
                    {
                        cmd.Parameters.Add(parameter);
                    }
                    return cmd.ExecuteScalar();
                }
            }
        }
       
        //把DataSet写于SQLHelper类里面,做成三层的结构
        public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
        {
               String connStr = ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString;
               using (SqlConnection conn = new SqlConnection(connStr))
               {
                   conn.Open();
                   using (SqlCommand cmd = conn.CreateCommand())
                   {
                       cmd.CommandText = sql;
                       foreach (SqlParameter parameter in parameters)
                       {
                           cmd.Parameters.Add(parameter);
                       }
                       DataSet ds = new DataSet();
                       SqlDataAdapter sda = new SqlDataAdapter(cmd);
                       sda.Fill(ds);
                       return ds.Tables[0];
                   }
               }
        }
    }

}
在UI里面的代码:
       private void button3_Click(object sender, EventArgs e)
        {
            DataTable dt = SQLHelper.ExecuteDataTable("Select * from T_Persons");
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow row = dt.Rows[i];
                string name = Convert.ToString(row["Name"]);
                MessageBox.Show(name);
            }
        }
执行效果:
 

你可能感兴趣的:(通过SQLHelper,做成三层)