国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

ADO.NET

2019-11-17 03:19:15
字體:
供稿:網(wǎng)友

ADO.NET - 全面梳理

來源:http://m.survivalescaperooms.com/yangcaogui/archive/2012/06/09/2537086.html#9

目錄:

  1. 簡單的介紹下ADO.NET
  2. SqlConnection(連接對(duì)象)
  3. SqlCommand(命令對(duì)象)
  4. SqlParameter(Sql參數(shù))
  5. SqlDataReader(數(shù)據(jù)流讀取器)
  6. SqlTransaction(事務(wù))
  7. SqlDataAdapter(數(shù)據(jù)適配器)
  8. DataSet,DataTable,DataRow,DataColumn
  9. 封裝數(shù)據(jù)庫操作類(這才是精華)

一丶簡單的介紹下ADO.NET

  了解System.Data命名空間下我們常用的一些類:

復(fù)制代碼
 1 ①System.Data  → DataTable,DataSet,DataRow,DataColumn,DataRelation,Constraint,DataColumnMapping,DataTableMapping 2 ②System.Data.Coummon     → 各種數(shù)據(jù)訪問類的基類和接口 3 ③System.Data.SqlClient   → 對(duì)Sql Server進(jìn)行操作的數(shù)據(jù)訪問類 4   主要有:   a) SqlConnection            → 數(shù)據(jù)庫連接器 5             b) SqlCommand               → 數(shù)據(jù)庫命名對(duì)象 6             c) SqlCommandBuilder        → 生存SQL命令 7             d) SqlDataReader            → 數(shù)據(jù)讀取器 8             e) SqlDataAdapter           → 數(shù)據(jù)適配器,填充DataSet 9             f) SqlParameter             → 為存儲(chǔ)過程定義參數(shù)10             g) SqlTransaction           → 數(shù)據(jù)庫事物
復(fù)制代碼

二丶SqlConnection(連接對(duì)象)

  1.連接字符串

    基本語法:數(shù)據(jù)源(Data Source)+數(shù)據(jù)庫名稱(Initial Catalog)+用戶名(User ID)+密碼(PassWord)(這種方式比較安全)!

    推薦文章 :SQL Server 連接字符串和身份驗(yàn)證,你必須知道的ADO.NET(三) 連接字符串,你小覷了嗎?,SQL Server 2008連接字符串寫法大全,連接字符串有很多的寫法,最保險(xiǎn)的寫法可以借助“SqlConnectionStringBuilder”類,它提供了全面的連接字符串的屬性,以至于減少出錯(cuò)率(相關(guān)屬性查MSDN),還有大多數(shù)連接字符串都寫在配置文件里面了!

  2.創(chuàng)建連接對(duì)象

SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder(){DataSource = "",InitialCatalog = "",UserID = "",Password = ""};SqlConnection connection = new SqlConnection(connectionStringBuilder.ToString());復(fù)制代碼
1 SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder()2  {3      DataSource = "",4      InitialCatalog = "",5      UserID = "",6      Password = ""7  };8 SqlConnection connection = new SqlConnection(connectionStringBuilder.ToString());
復(fù)制代碼

  3.打開和關(guān)閉連接對(duì)象(使用Using來關(guān)閉連接)

1 using(SqlConnection connection = new SqlConnection(connectionStringBuilder.ToString()))2 {3     connection.Open();4     connection.Close();5 }
1 using(SqlConnection connection = new SqlConnection(connectionStringBuilder.ToString()))2 {3     connection.Open();4     connection.Close();5 }

    關(guān)于連接池的文章:你必須知道的ADO.NET(五) 細(xì)說數(shù)據(jù)庫連接池(寫的還真不賴啊),頂...

三丶SqlCommand(命令對(duì)象)

  1.實(shí)例化的時(shí)候默認(rèn)初始化的四個(gè)屬性

  2.創(chuàng)建命令對(duì)象

    使用連接對(duì)象的“CreateCommand()”方法創(chuàng)建命令對(duì)象,也可以使用new來實(shí)例化對(duì)象!

1 SqlCommand command = connection.CreateCommand(); //這種方式比較好,也可以自己實(shí)例化一個(gè)對(duì)象!

  3.幾個(gè)重要屬性

    ①CommandText:獲取或設(shè)置要對(duì)數(shù)據(jù)源執(zhí)行的 Transact-SQL 語句、表名或存儲(chǔ)過程!

    ②CommandType:設(shè)置你執(zhí)行的SQL語句是存儲(chǔ)過程還是T-SQL(是一個(gè)枚舉)!

    

    ③Parameters:設(shè)置你T-SQL中你需要用到的參數(shù)(后面會(huì)講到),是一個(gè)“SqlParametersCollection”類型,這個(gè)屬性很重要,是你通過代碼給SQL語句傳遞參數(shù)的途徑,所以記住語法,記住一些使用規(guī)則講對(duì)編碼有很大的幫助!

  4.幾個(gè)重要的方法(相信大家熟悉的不能再熟悉了)

    ①ExecuteNonQuery:返回是影響的行數(shù)(int),主要執(zhí)行更新,添加,刪除等操作!

    ②ExecuteReader:執(zhí)行SQL或存儲(chǔ)過程,返回的是SqlDataReader類型,主要用來查詢!

      ★ 這邊注意這個(gè)方法的重載 CommandBehaviour 枚舉,成員如下:

    

1 command.ExecuteReader(CommandBehavior.CloseConnection); //在執(zhí)行讀取之后會(huì)自動(dòng)關(guān)閉連接對(duì)象

   ③ExecuteScalar:返回執(zhí)行結(jié)果集中的第一行第一列,如果沒有數(shù)據(jù),則返回NULL!

    Note:因?yàn)榭赡軙?huì)返回“Null”值,所以需要對(duì)結(jié)果進(jìn)行判斷,如下:

1         object my = cmd.ExecuteScalar();2                 if (object.Equals(my,null))  //可以使用Equals進(jìn)行Null值的判斷,易讀性強(qiáng)3                     Console.WriteLine("Not Data");4                 else5                     Console.WriteLine("Yes");
1         object my = cmd.ExecuteScalar();2                 if (object.Equals(my,null))  //可以使用Equals進(jìn)行Null值的判斷,易讀性強(qiáng)3                     Console.WriteLine("Not Data");4                 else5                     Console.WriteLine("Yes");

    ④CreateParameter:創(chuàng)建SqlParameter實(shí)例

1 SqlParameter para = cmd.CreateParameter() //此方法適合SQL語句中只有一個(gè)參數(shù)的情況!

    推薦文章:你必須知道的ADO.NET(六) 談?wù)凜ommand對(duì)象與數(shù)據(jù)檢索

         你必須知道的ADO.NET(七) Wow!Command對(duì)象高級(jí)應(yīng)用

四丶SqlParameter(Sql參數(shù))

  1.幾個(gè)重要的屬性    

  ParameterName: 設(shè)置參數(shù)名

  Value:   給參數(shù)設(shè)置值

    Size:    設(shè)置參數(shù)字節(jié)最大大小(以字節(jié)為但為)

    SqlDbType:    參數(shù)在SQL中的類型  

SqlParameter paras = new SqlParameter() { ParameterName = "@name", Value = 10, SqlDbType = SqlDbType.Int, Size = 4 };

復(fù)制代碼
1             SqlParameter paras = new SqlParameter()2              {3                     ParameterName = "@name",4                     Value = 10,5                     SqlDbType = SqlDbType.Int,6                     Size = 47              };
復(fù)制代碼

  2.命令對(duì)象添加參數(shù)集合的幾種方法

    ①AddWithValue

    ②Add

    ③AddRange

    推薦文章:SqlParameter的作用與用法,代碼如下:

復(fù)制代碼
 1  using (SqlConnection connection = new SqlConnection("")) 2  { 3      SqlCommand command = connection.CreateCommand(); 4      command.CommandText = ""; 5  6      //可以使用這種方式添加多個(gè)參數(shù),不過方式不夠好 7      command.Parameters.Add("@name", SqlDbType.NVarChar).Value = "yang"; //第一種方式 8      command.Parameters.Add("@age", SqlDbType.Int).Value = 888; 9      command.Parameters.Add("@address", SqlDbType.NVarChar, 100).Value = "Jiang Su";10 11      //這種方式直接給定參數(shù)名和參數(shù)就可以了,可操作性比較差12      command.Parameters.AddWithValue("@name", "yang");13      command.Parameters.AddWithValue("@age", 888).SqlDbType = SqlDbType.Int;14      command.Parameters.AddWithValue("@address", "Jiang su").SqlDbType = SqlDbType.NVarChar;15 16      //直接使用參數(shù)集合添加你需要的參數(shù),推薦這種寫法17      SqlParameter[] parameters = new SqlParameter[]18      {19          new SqlParameter("@name",SqlDbType.NVarChar,100){Value = "yang"},20          new SqlParameter("@age",SqlDbType.Int,2){Value = 888},21          new SqlParameter("@address",SqlDbType.NVarChar,20){Value = "Jiang Su"}, 22      };23      command.Parameters.AddRange(parameters);  //參數(shù)也可以是一個(gè)Array數(shù)組,如果采用數(shù)組參數(shù)代碼的可讀性和擴(kuò)展性就不是那么好了24 25      //當(dāng)我們把參數(shù)都添加好之后,會(huì)生成一個(gè)“SqlParameterCollection”集合類型,相當(dāng)于參數(shù)的集合26      //那么我們就可以對(duì)這些參數(shù)進(jìn)行修改和移除了27      //說穿了“SqlParameterCollection”內(nèi)部其實(shí)是一個(gè)List<SqlParameter>的集合,只是它里面的復(fù)雜度比較高,考慮的很全面28      command.Parameters[0].Value = "hot girl";29      command.Parameters[0].Size = 200;30  }
復(fù)制代碼

  3.說說“SqlParameterCollection”,參數(shù)集合

    上面添加的“SqlParameter”參數(shù)都被添加到了“SqlParameterCollection”集合中去了,所以我們才能夠?qū)λM(jìn)行讀取和修改!

  4.定義適當(dāng)?shù)膮?shù)屬性獲取存儲(chǔ)過程的返回值(return) →Direction = Paramet

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 普定县| 岫岩| 深州市| 准格尔旗| 弥渡县| 顺昌县| 英吉沙县| 行唐县| 祁门县| 东乌珠穆沁旗| 四子王旗| 南汇区| 大连市| 龙川县| 东丽区| 茶陵县| 石狮市| 赤城县| 金乡县| 新巴尔虎左旗| 鹤庆县| 云林县| 尖扎县| 太谷县| 喀喇沁旗| 芜湖县| 安丘市| 安阳市| 井陉县| 青海省| 双鸭山市| 辽源市| 盐山县| 盐津县| 郸城县| 昂仁县| 昌平区| 百色市| 哈密市| 基隆市| 天祝|