close

IDE:VS2017

SQL:MSSQL


SqlHelper其實就是把常跟資料庫存取的ADO.NET語法,封裝起來,以下是我使用的SqlHelper

這邊會有兩個靜態字串,cn的話,我是拿來抓取資料庫的名稱,帳號,密碼,CnStr則是多了連結哪一個DataBase

或許會覺得幹嘛這樣,或是不該這樣,這樣別人在與你對接程式的時候,就可以改這邊了...

不過目前不擔心,我是一個人~~~一個人.....而且,我工作的DB內的Table與Column都一樣的....只有裡面的Data會不一樣,所以需要可以自由的切換

這最主要有五個方法

ExecuteNonQuery---用來下新增/修改/刪除的事情 ,例如 DeleteTable 

ExecuteRead--讀取某一個欄位某一列的文字 ,例如 Select Top 1 col From Table 

ExecuteScalar--讀取數量,例如 Select Count(1) From Table

ExecuteDataTable--讀取某個表,例如 Select * From Table

ExecuteNonText--判斷有沒有成功連接上資料庫


   public class SqlHelper
    {

        public static string cn = $"Data Source=.;Uid=sa;pwd=1234";
        public static string cnStr = cn + ";database=DBNAME";

        public static int ExecuteNonQuery(string sql, params SqlParameter[] Parameters)
        {
            using (SqlConnection cn = new SqlConnection(cnStr))
            {
                cn.Open();
                using (SqlTransaction tran = cn.BeginTransaction())
                {
                    using (SqlCommand cm = cn.CreateCommand())
                    {
                        cm.Transaction = tran;
                        cm.CommandTimeout = 0;
                        cm.CommandText = sql;
                        cm.Parameters.AddRange(Parameters);
                        try
                        {
                            tran.Commit();
                        }
                        catch
                        {
                            tran.Rollback();
                        }
                        return cm.ExecuteNonQuery();

                    }
                }
            }
        }

        public static string ExecuteRead(string sql, params SqlParameter[] Parameters)
        {
            using (SqlConnection cn = new SqlConnection(cnStr))
            {
                cn.Open();
                using (SqlCommand cm = cn.CreateCommand())
                {
                    string Read = "";
                    cm.CommandTimeout = 0;
                    cm.CommandText = sql;
                    cm.Parameters.AddRange(Parameters);
                    using (SqlDataReader dr = cm.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            Read = dr.GetSqlString(0).ToString();
                        }
                    };
                    return Read;
                }
            }
        }
      
        public static object ExecuteScalar(string sql, params SqlParameter[] Parameters)
        {
            using (SqlConnection cn = new SqlConnection(cnStr))
            {
                cn.Open();
                using (SqlCommand cm = cn.CreateCommand())
                {
                    cm.CommandTimeout = 0;
                    cm.CommandText = sql;
                    cm.Parameters.AddRange(Parameters);
                    return cm.ExecuteScalar();
                }
            }
        }

       

        public static DataTable ExecuteDataTable(string sql, params SqlParameter[] Parameters)
        {
            using (SqlConnection cn = new SqlConnection(cnStr))
            {
                cn.Open();
                using (SqlCommand cm = cn.CreateCommand())
                {
                    cm.CommandTimeout = 0;
                    cm.CommandText = sql;
                    cm.Parameters.AddRange(Parameters);
                    using (SqlDataAdapter da = new SqlDataAdapter(cm))
                    {
                        DataTable dt = new DataTable();
                        da.FillSchema(dt, SchemaType.Source);
                        da.Fill(dt);
                        return dt;
                    }
                }
            }
        }


        public static bool ExecuteNonText(string _cnStr)
        {
            using (SqlConnection cn = new SqlConnection(_cnStr))
            {
                try
                {
                    cn.Open();
                    return true;
                }
                catch
                {
                    return false;
                }
            }
        }
  }
 

arrow
arrow
    創作者介紹
    創作者 軒軒的爸媽 的頭像
    軒軒的爸媽

    軒軒的爸媽

    軒軒的爸媽 發表在 痞客邦 留言(0) 人氣()