C#中SqlHelper類封裝及調用


在AppConfig.cs增加DataSouce連接字符串(SQL Server):

  <connectionStrings>
    <add name="sql" connectionString="server=127.0.0.1;database=Test;uid=root;pwd=root;"/>
  </connectionStrings>

SqlHelper類:

using實質:在程序編譯階段,編譯器會自動將using語句生成為try-finally語句,並在finally塊中調用對象的Dispose方法,來清理資源。所以,using語句等效於try-finally語句。

using (Font f2 = new Font("Arial", 10, FontStyle.Bold))
{
     font2.F();
}

被編譯器翻譯為:
     Font f2 = new Font("Arial", 10, FontStyle.Bold);
  try
  {
      font2.F();

  }
  finally
  {
      if (f2 != null) ((IDisposable)f2).Dispose();
  }

不要在外部實例,會存在一些問題。

Font f2 = new Font("Arial", 10, FontStyle.Bold)

using ( f2 )
{
     font2.F();
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;//Configuration表面配置,組態,構造

namespace BookDemo
{
    class sqlHelper
    {
        public static string GetSqlConnectionString()
        {
            return ConfigurationManager.ConnectionStrings["Sql"].ConnectionString;
        }
        //適合增刪改操作,返回影響條數
        public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
        {  
            using (SqlConnection conn = new SqlConnection(GetSqlConnectionString()))
            {
                using (SqlCommand comm = conn.CreateCommand())
                {
                    conn.Open();
                    comm.CommandText = sql;
                    comm.Parameters.AddRange(parameters);
                    return comm.ExecuteNonQuery();
                }
            }
        }
        //查詢操作,返回查詢結果中的第一行第一列的值
        public static object ExecuteScalar(string sql, params SqlParameter[] parameters)
        {
            using (SqlConnection conn = new SqlConnection(GetSqlConnectionString()))
            {
                using (SqlCommand comm = conn.CreateCommand())
                {
                    conn.Open();
                    comm.CommandText = sql;
                    comm.Parameters.AddRange(parameters);
                    return comm.ExecuteScalar();
                }
            }
        }
        //Adapter調整,查詢操作,返回DataTable
        public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
        {
            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, GetSqlConnectionString()))
            {
                DataTable dt = new DataTable();
                adapter.SelectCommand.Parameters.AddRange(parameters);
                adapter.Fill(dt);
                return dt;
            }
        }

        public static SqlDataReader ExecuteReader(string sqlText, params SqlParameter[] parameters)
        {
            //SqlDataReader要求,它讀取數據的時候有,它獨占它的SqlConnection對象,而且SqlConnection必須是Open狀態
            SqlConnection conn = new SqlConnection(GetSqlConnectionString());//不要釋放連接,因為后面還需要連接打開狀態
            SqlCommand cmd = conn.CreateCommand();
            conn.Open();
            cmd.CommandText = sqlText;
            cmd.Parameters.AddRange(parameters);
            //CommandBehavior.CloseConnection當SqlDataReader釋放的時候,順便把SqlConnection對象也釋放掉
            return cmd.ExecuteReader(CommandBehavior.CloseConnection);
        }
    }
}

 測試調用:

            string sql = "select * from Julius_Goods where name = @name";
            DataTable dt = null;
            dt = sqlHelper.ExecuteDataTable(sql,new SqlParameter("@name", "aqq"));
            dataGridView1.DataSource = dt;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM