.NET基礎操作回顧_使用ADO.NET操作SqlServer使用的類

來源:互聯網
上載者:User

標籤:

    有些工具用的久了或者有新工具出現後,就慢慢的遺忘了很多,它們從熟悉的變成陌生,當然,對於我們來說不是好事吧。

          今天回顧一下ADO.NET用到的MS的基礎類庫,先上代碼(標準的SqlServer操作)

          

1)一個基本的插入封裝方法  
        using System;
     using System.Collections;
     using System.Text;

       using System.Data

     using System.Data.SqlClient;
    
        public static bool Add(Hashtable model)        {            StringBuilder strSql = new StringBuilder();            strSql.Append("insert into SysUser(");            strSql.Append("UserID,EffectiveTime)");            strSql.Append(" values (");            strSql.Append("@[email protected])");            SqlParameter[] parameters = {new SqlParameter("@UserID", SqlDbType.VarChar,50),new SqlParameter("@EffectiveTime", SqlDbType.VarChar,30)};            parameters[0].Value = model["UserID"];            parameters[1].Value = model["EffectiveTime"];            return SQLHelper.ExecuteNonQuery(ConnString, strSql.ToString(), parameters) > 0;        }

        上面方法用到了四個基礎類:Hashtable用來存放傳入的參數(key/value 組合);StringBuilder用來拼接字串;因為StringBuilder會預先分配儲存空間,效率比string高;SqlParameter,向SqlCommand傳遞參數 ;string 在這樣充當最終的SQL 字串參數(由StringBuilder轉化而來)。

2) 執行的方法
public static int ExecuteNonQuery(string connString, string cmdText, params SqlParameter[] cmdParms) { SqlCommand cmd = new SqlCommand(); using (SqlConnection conn = new SqlConnection(connString)) { PrepareCommand(cmd, conn, null, CommandType.Text, cmdText, cmdParms); int val = cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); return val; } }

    上面方法也用到了四個類:string(略過);SqlParameter,向SqlCommand傳遞參數 ;SqlCommand 類,對SQL Server 資料庫執行的一個 Transact-SQL 陳述式或預存程序(不能被繼承);SqlConnection 類,表示到 SQL Server 資料庫的開啟串連(不能被繼承)。

 3)查詢的方法
    public static DataSet Adapter(string connString, string cmdText, params SqlParameter[] cmdParms) { SqlCommand cmd = new SqlCommand(); DataSet ds = new DataSet(); using (SqlConnection conn = new SqlConnection(connString)) { PrepareCommand(cmd, conn, null, CommandType.Text, cmdText, cmdParms); SqlDataAdapter ada = new SqlDataAdapter(cmd); ada.Fill(ds); cmd.Parameters.Clear(); return ds; } }

    上面方法也用到了六個類:string(略過);SqlParameter,向SqlCommand傳遞參數 ;SqlCommand類,對SQL Server 資料庫執行的一個 Transact-SQL 陳述式或預存程序(不能被繼承);SqlConnection 類,表示到 SQL Server 資料庫的開啟串連(不能被繼承);DataSet,一個存放於記憶體中的資料緩衝類;SqlDataAdapter,用於填充 DataSet 和更新 SQL Server 資料庫的一組資料命令和一個資料庫連接,一個DataSet中至少包含一個DataTable(一個記憶體中的資料表類)。.

4)事務的執行類
        public static int ExecuteNonQuery(string connString, List<string> listCmdText, List<SqlParameter[]> listCmdParms)        {            if (listCmdText.Count != listCmdParms.Count)            {                return -1;            }            int val = 0;            SqlCommand cmd = new SqlCommand();            using (SqlConnection conn = new SqlConnection(connString))            {                if (conn.State != ConnectionState.Open)                {                    conn.Open();                }                SqlTransaction trans = conn.BeginTransaction();                try                {                    for (int i = 0; i < listCmdText.Count; i++)                    {                        PrepareCommand(cmd, conn, trans, CommandType.Text, listCmdText[i], listCmdParms[i]);                        val += cmd.ExecuteNonQuery();                        cmd.Parameters.Clear();                    }                    trans.Commit();                }                catch(Exception ex)                {                    trans.Rollback();                    if (conn.State == ConnectionState.Open)                    {                        conn.Close();                    }                    throw ex;                }                finally                {                    if (conn.State == ConnectionState.Open)                    {                        conn.Close();                    }                }            }            return val;        }

              上文未描述的類:SqlTransaction,在 SQL Server 資料庫中產生的 Transact-SQL 事務的類(用於多條SQL執行);List,通過索引訪問的對象的強型別列表。

             小結一下:

              1)拼接SQL字串:會用的String、StringBuilder

              2)通用參數傳遞:List、HashTable

              3)專用類(連結其它資料庫採用不同的近似類庫):參數傳遞類,SqlParameter;資料庫連接類,SqlConnection ;事務類,SqlTransaction;SqlCommand,命令執行類;SqlDataAdapter,命令執行和連結類。

.NET基礎操作回顧_使用ADO.NET操作SqlServer使用的類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.