chapter 1...
Post on 28-Jun-2020
8 Views
Preview:
TRANSCRIPT
目錄
X XIII
推薦序 .................................................................................................. I
序 ............................................................................................... III
導讀 ................................................................................................ V
Chapter 1 ADO.NET資料存取技術概論
1.1 及時連線環境 ............................................................................ 2
1.2 離線環境 .................................................................................. 2
1.3 ADO.NET架構 ........................................................................... 3
1.4 常用的命名空間 ........................................................................ 5
1.5 ADO.NET物件模型 .................................................................... 7
1.5.1 DataSet物件模型 .............................................................. 9
1.5.2 .NET Framework Data Provider ....................................... 20
1.5.3 選擇Data Provider .......................................................... 14
1.5.4 使用及時連線運作機制 .................................................... 17
1.5.5 使用離線存取 ................................................................. 18
1.6 ADO.NET錯誤處理 .................................................................. 20
1.7 ADO.NET與XML ...................................................................... 21
1.8 總結 ....................................................................................... 22
Chapter 2 使用Visual Studio 2005管理資料
2.1 伺服器總管 ............................................................................. 24
2.1.1 Step-By-Step:建立SQL Server 資料庫.......................... 25
2.2 連接到SQL Server資料庫 ......................................................... 26
2.2.1 Step-By-Step:建立資料庫連結 ...................................... 26
2.3 建立資料表 ............................................................................. 31
2.3.1 Step-By-Step:建立Region資料表 .................................. 31
2.3.2 查詢、瀏覽,與修改資料 ................................................ 33
2.4 連接各種資料來源 ................................................................... 34
2.4.1 連結到SQL Server 2005資料庫檔案 ................................. 34
2.4.2 連結到Access資料庫檔案 ............................................... 35
2.4.3 連結到Excel檔案 ............................................................ 37
2.4.4 連結到文字檔案 .............................................................. 39
2.4.5 Step-By-Step:使用ODBC連接到各種資料來源 ............... 41
2.4.6 連接到Oracle伺服器 ....................................................... 46
ADO.NET 2.0實戰講座 X XIV
2.5 使用「查詢產生器」查詢資料 .................................................. 48
2.5.1 建立SQL查詢 ................................................................. 50
2.6 總結 ....................................................................................... 58
Chapter 3 連接到資料庫
3.1 建立連線字串 .......................................................................... 60
3.1.1 使用SQL Server驗證 ....................................................... 62
3.1.2 使用Windows整合驗證 ................................................... 62
3.1.3 自動建立連線字串 .......................................................... 63
3.2 了解DbConnection物件 ........................................................... 65
3.2.1 DbConnection物件常用屬性 ............................................ 67
3.2.2 Step-By-Step:使用SqlConnection連接到
SQL Server資料庫 .............................................................. 69
3.3 SQL Server 2005/ SQL Server Express連線故障排除 ................ 71
3.3.1 無法以sa帳號連接到SQL Server 2005 ............................. 71
3.3.2 連接到SQL Server Express資料庫 ................................... 76
3.3.3 使用TCP連接SQL Server 2005/Express........................... 77
3.3.4 連接到SQL Server Express資料庫檔案 ............................ 79
3.3.5 使用SqlConnection元件建立連線 .................................... 80
3.4 使用組態檔案儲存連線字串 ...................................................... 80
3.4.1 Step-By-Step:使用config檔案存放連線字串 ................... 81
3.4.2 Step-By-Step:讀寫系統登錄中的連線字串 ..................... 85
3.4.3 Step-By-Step:使用Visual Studio設定應用程式組態 ........ 88
3.5 使用OleDbConnection物件建立連線 ......................................... 90
3.5.1 連接到SQL Server 2005/2000 ......................................... 91
3.5.2 範例:連接到Access資料庫 ............................................ 93
3.5.3 範例:連接到Excel檔案 .................................................. 94
3.6 使用OdbcConnection建立連線 ................................................ 95
3.6.1 範例:連接到Access資料庫 ............................................ 95
3.6.2 範例:連接到Text檔 ........................................................ 95
3.7 連接到MySQL伺服器 ............................................................... 96
3.7.1 Step-By-Step:使用MySQL Connector/Net連接MySQL ... 96
3.8 連接到Oracle伺服器 ................................................................ 97
目錄
X XV
3.8.1 Step-By-Step:使用.NET Framework Data Provider for Oracle 98
3.8.2 Step-By-Step:使用Oracle Data Provider for .NET 2.0 ..... 98
3.9 常用的連線字串 ...................................................................... 99
3.10 設定 |DataDirectory| 變數 ...................................................... 100
3.10.1 範例:自訂 |DataDirectory| 目錄 .................................. 100
3.11 連線集區 .............................................................................. 101
3.11.1 啟用、關閉連線集區 ................................................... 102
3.11.2 範例:使用Using語法釋放資源 .................................... 103
3.12 DbConnection物件的其它應用 ............................................... 104
3.12.1 範例:使用State屬性判斷連線狀態 .............................. 104
3.12.2 範例:取得SQL Server資料庫結構描述資訊 ................. 105
3.12.3 範例:取得Ole Db資料庫的結構描述資訊 ..................... 107
3.12.4 範例:變更SQL Server密碼 ......................................... 108
3.12.5 範例:使用ChangeDatabase變更資料庫 ...................... 109
3.13 錯誤處理機制 ........................................................................ 110
3.13.1 範例:捕捉SqlClient 例外錯誤 ..................................... 110
3.13.2 範例:捕捉OleDb 例外錯誤 ......................................... 113
3.13.3 範例:捕捉ODBC例外錯誤 ......................................... 115
3.13.4 範例:捕捉OracleClient例外錯誤 ................................. 116
3.14 總結 ..................................................................................... 117
Chapter 4 使用Command物件與預存程序
4.1 了解Command物件 ............................................................... 120
4.2 使用DbCommand物件 ........................................................... 123
4.2.1 Step-By-Step:使用SqlCommand物件新增資料 ............ 123
4.2.2 範例:使用OleDbCommand物件新增資料 ..................... 126
4.2.3 範例:使用CreateCommand方法建立DbConnection物件 127
4.3 執行DDL與DML命令 .............................................................. 127
4.3.1 範例:執行資料定義語言 .............................................. 128
4.4 使用參數物件 ........................................................................ 130
4.4.1 範例:使用SqlParameter物件 ....................................... 132
4.4.2 使用OleDbParameter物件 ............................................. 134
4.4.3 範例:在ASP.NET網頁使用SqlParameter參數物件 ......... 135
4.5 使用ExecuteScalar方法 ......................................................... 137
4.5.1 範例:使用ExecuteScalar方法回傳單一值 ...................... 138
4.6 使用預存程序 ........................................................................ 139
ADO.NET 2.0實戰講座 X XVI
4.6.1 Step-By-Step:使用查詢產生器建立預存程序 ................ 139
4.6.2 範例:呼叫預存程序 ..................................................... 144
4.6.3 取得預存程序回傳值 ..................................................... 145
4.6.4 範例:取得輸出參數值 .................................................. 149
4.6.5 除錯預存程序 ............................................................... 151
4.7 使用DbCommandBuilder取得參數.......................................... 153
4.7.1 範例:自動取得參數 ..................................................... 154
4.8 搜集批次更新統計資訊 .......................................................... 155
4.8.1 範例:批次更新影響筆數 .............................................. 155
4.9 總結 ..................................................................................... 157
Chapter 5 使用DataReader讀取資料
5.1 DataReader運作方式 ............................................................. 161
5.2 使用DataReader ................................................................... 161
5.2.1 範例:使用ExecuteReader查詢資料 .............................. 164
5.3 DataReader與預存程序 ......................................................... 166
5.3.1 範例:取回預存程序輸出參數 ....................................... 167
5.4 增加DataReader讀取效能 ...................................................... 170
5.4.1 使用Get開頭的方法 ...................................................... 170
5.4.2 範例:使用GetOrdinal方法 ............................................ 171
5.4.3 範例:使用GetValues方法 ............................................. 173
5.5 取得多個結果集 .................................................................... 173
5.5.1 範例:使用NextResult方法 ........................................... 174
5.6 設定CommandBehavior列舉常數 ........................................... 175
5.6.1 範例:使用CommandBehavior. CloseConnection列舉值 176
5.6.2 範例:使用SingleResult列舉值 ...................................... 178
5.6.3 範例:使用SchemaOnly列舉值 ..................................... 178
5.7 處理Null ................................................................................ 180
5.7.1 範例:判斷Null ............................................................. 182
5.8 DataReader應用範例 ............................................................. 183
5.8.1 範例:取得SQL Server結構描述 .................................... 183
5.8.2 範例:儲存與讀取二進位資料 ....................................... 188
5.8.3 範例:使用OLE DB讀取Excel工作表 .............................. 194
5.8.4 範例:使用ODBC讀取文字檔 ........................................ 195
5.9 總結 ..................................................................................... 197
目錄
X XVII
Chapter 6 離線的資料儲存體DataSet與DataTable
6.1 DataSet物件架構 .................................................................. 200
6.1.1 DataTable物件 .............................................................. 203
6.1.2 DataRow物件 ............................................................... 206
6.2 建立DataSet與DataTable ....................................................... 208
6.2.1 Step-By-Step:使用Visual Studio建立DataSet結構描述 . 208
6.2.2 使用程式建立DataSet與DataTable結構描述 ................... 215
6.2.3 利用DataColumn建立結構............................................. 216
6.2.4 指定DataColumn的型別 ................................................ 220
6.2.5 使用自訂型別 ............................................................... 220
6.2.6 建立自動流水號欄位 ..................................................... 222
6.3 載入與儲存DataSet/DataTable ............................................. 224
6.3.1 Step-By-Step:將DataSet儲存成XML ........................... 224
6.3.2 以二進位格式序列化DataSet/DataTable ....................... 226
6.3.3 其它序列化選項 ............................................................ 230
6.3.4 範例:設定欄位對應 ..................................................... 231
6.4 資料繫結技術與瀏覽資料 ....................................................... 232
6.4.1 BindingSource與BindingNavigato .................................. 232
6.5 建立主鍵 .............................................................................. 238
6.5.1 Step-By-Step:使用Visual Studio建立主鍵 .................... 239
6.5.2 範例:使用程式建立主鍵 .............................................. 242
6.6 建立唯一的條件約束 .............................................................. 244
6.6.1 Step-By-Step:使用Visual Studio建立條件約束 ............. 245
6.6.2 使用ColumnChanging事件攔截錯誤 ............................... 247
6.6.3 範例:使用程式建立UniqueConstraint ........................... 248
6.7 自訂運算式資料行 ................................................................. 250
6.7.1 Step-By-Step:使用Visual Studio自訂彙總欄位 ............. 250
6.7.2 範例:使用程式自訂彙總欄位 ....................................... 253
6.7.3 進階Express語法 .......................................................... 255
6.8 新增、刪除及修改DataRow ................................................... 255
6.8.1 範例:將資料載入DataTable.......................................... 256
6.8.2 新增、刪除、移除、查詢資料 ....................................... 257
6.8.3 攔截DataTable事件 ....................................................... 266
6.9 使用DataTableReader類別 ..................................................... 268
ADO.NET 2.0實戰講座 X XVIII
6.9.1 範例:使用DataTableReader讀取資料 ........................... 269
6.9.2 讀取多個DataTable ....................................................... 270
6.9.3 複製DataTable中的資料 ................................................ 272
6.10 了解RowState ....................................................................... 273
6.10.1 使用DataRowVersion取得資料版本 .............................. 274
6.10.2 範例:了解RowState狀態的變更 ................................. 275
6.10.3 範例:使用Proposed版本 ........................................... 280
6.10.4 範例:修改RowState .................................................. 284
6.11 總結 ..................................................................................... 285
Chapter 7 XML結構描述與具型別資料集
7.1 XML結構描述 ........................................................................ 288
7.1.1 了解XSD ...................................................................... 288
7.2 具型別資料集 ........................................................................ 289
7.2.1 Step-By-Step:自訂結構描述資訊................................. 290
7.2.2 利用資料庫物件建立具型別資料集 ................................. 297
7.2.3 Step-by-Step:在資料集中新增資料表與關聯 ................ 307
7.3 使用具型別資料集 ................................................................. 311
7.3.1 Step-by-Step:使用具型別資料集範例 .......................... 312
7.4 修改結構描述資訊 ................................................................. 315
7.4.1 資料行中的Null值 ......................................................... 316
7.4.2 範例:處理DataColumn的Null值 .................................... 316
7.4.3 Step-by-Step:新增彙總欄位........................................ 320
7.4.4 修改結構設定欄位對應 .................................................. 322
7.4.5 擴充具型別資料集能力 .................................................. 325
7.5 使用XSD.EXE建立具型別資料集 ............................................. 329
7.5.1 Step-by-Step:使用XSD.EXE建立具型別資料集 ............. 329
7.5.2 Step-by-Step:使用具型別資料集 ................................. 330
7.5.3 具型別資料集的恩愛情仇 .............................................. 331
7.6 將XML 結構描述載入DataSet ................................................. 332
7.6.1 叫用DataSet物件的ReadXmlSchema方法 ...................... 332
7.6.2 從XML資料推論結構描述資訊 ........................................ 336
7.6.3 再論ReadXml方法 ........................................................ 341
7.7 產生XML 結構描述資訊 ......................................................... 349
目錄
X XIX
7.7.1 範例:使用WriteXmlSchema方法 .................................. 349
7.7.2 範例:使用GetXmlSchema方法 ..................................... 350
7.8 萃取結構描述資訊與資料 ....................................................... 350
7.8.1 範例:使用DataSet.WriteXml方法 .................................. 350
7.8.2 使用DataTable讀寫XM .................................................. 354
7.9 儲存DataSet變動 .................................................................. 354
7.9.1 了解DiffGram ............................................................... 355
7.10 具型別資料集序列化考量 ....................................................... 356
7.11 總結 ..................................................................................... 359
Chapter 8 使用DataAdapter異動資料
8.1 了解DataAdapter物件 ............................................................ 362
8.2 使用DataAdapter類別 ............................................................ 363
8.3 建立DataAdapter .................................................................. 366
8.3.1 範例:建立DataAdapter讀取資料庫資料 ........................ 367
8.3.2 範例:使用SelectCommand屬性建立查詢 ..................... 368
8.4 建立呼叫預存程序的DataAdapter ........................................... 369
8.4.1 Step-By-Step:使用Visual Studio建立預存程序 ............. 370
8.4.2 Step-By-Step:在表單程式呼叫預存程序 ...................... 372
8.5 了解Fill方法........................................................................... 374
8.5.1 範例:使用DataAdapter Fill方法 .................................... 375
8.5.2 增進Fill方法的執行效能 ................................................. 378
8.5.3 範例:取得Fill方法參數資訊 .......................................... 379
8.6 推論DataSet中的結構描述 ..................................................... 380
8.6.1 MissingMappingAction與MissingSchemaAction ............. 381
8.6.2 設定欄位對應 ............................................................... 384
8.6.3 MissingSchemaAction與FillSchema效能考量 ................. 390
8.7 使用DataAdapter更新資料 ..................................................... 391
8.7.1 使用CommandBuilder產生命令更新資料 ........................ 392
8.7.2 自訂Command物件修改資料 ......................................... 398
8.8 批次更新資料 ........................................................................ 403
8.8.1 範例:批次更新產品資料 .............................................. 404
8.9 控制資料載入的細節 .............................................................. 406
8.9.1 範例:使用LoadOption載入資料 ................................... 407
8.10 總結 ..................................................................................... 413
ADO.NET 2.0實戰講座 X X X
Chapter 9 DataRelation與ForeignKeyConstraint
9.1 建立DataRelation物件 ........................................................... 416
9.1.1 Step-By-Step:使用DataSet設計工具建立DataRelation.. 418
9.2 使用程式建立DataRelation ..................................................... 427
9.2.1 範例:建立DataRelation物件 ......................................... 427
9.2.2 DataRelation與條件約束 ............................................... 430
9.3 使用CreateChildView建立資料檢視 ........................................ 431
9.3.1 Step-By-Step:使用CreateChildView取得子資料表的DataView 432
9.4 建立多對多DataRelation ........................................................ 438
9.4.1 Step-By-Step:使用具型別資料集建立多對多關聯 ......... 440
9.4.2 範例:使用程式建立多對多關聯 .................................... 443
9.4.3 使用Join解決多對多的複雜度 ........................................ 445
9.5 建立自我關聯 ........................................................................ 448
9.5.1 範例:自我關聯 ............................................................ 449
9.6 使用關聯統計、加總子資料表 ................................................ 452
9.6.1 Step-By-Step:子資料表彙總 ....................................... 455
9.6.2 範例:使用程式彙總子資料表 ....................................... 460
9.7 外部索引鍵條件約束 .............................................................. 463
9.7.1 DataRelation與ForeignKeyConstraint ............................. 463
9.7.2 自訂外部索引鍵條件約束 .............................................. 464
9.7.3 參考完整性規則 ............................................................ 465
9.7.4 Step-By-Step:在不具型別資料集
建立外部索引鍵條件約束與DataRelation ........................... 471
9.7.5 範例:使用程式定義外部索引鍵約束 ............................. 479
9.7.6 範例:在具型別資料集設定關聯與規則 .......................... 482
9.8 巢狀關聯 .............................................................................. 487
9.9 總結 ..................................................................................... 489
Chapter 10 使用TableAdapter開發資料存取程式
10.1 Visual Studio資料存取元件 .................................................... 492
10.1.1 了解TableAdapter物件 ................................................ 493
10.1.2 使用TableAdapter物件 ................................................ 498
10.1.3 預覽TableAdapter資料 ................................................ 500
目錄
X X XI
10.1.4 TableAdapter類別的屬性 ............................................. 501
10.1.5 使用資料來源視窗 ...................................................... 502
10.1.6 資料來源組態精靈 ...................................................... 502
10.1.7 Step-By-Step:使用資料來源組態精靈建立資料存取程式 .... 504
10.1.8 TableAdapter類別與命名空間 ...................................... 510
10.1.9 拖曳資料繫結 ............................................................. 510
10.1.10 新增、刪除、修改資料測試 ....................................... 511
10.1.11 拖曳繫結技巧 ........................................................... 514
10.2 TableAdapter查詢 .................................................................. 517
10.2.1 設定TableAdapter查詢 ................................................ 518
10.2.2 產生Fill、Get與DbDirect方法 ........................................ 522
10.3 參數化TableAdapter查詢 ....................................................... 524
10.3.1 Step-By-Step:為TableAdapter新增查詢 ..................... 525
10.3.2 Step-By-Step:客製化資料篩選工具列 ........................ 529
10.4 TableAdapter物件屬性與方法 ................................................. 531
10.5 加入全域查詢 ........................................................................ 533
10.5.1 Step-By-Step:建立SELECT查詢 ................................ 533
10.5.2 Step-By-Step:建立全域查詢 ..................................... 536
10.6 使用TableAdapter更新資料 .................................................... 540
10.6.1 範例:使用Insert、Update、Delete方法修改資料 ......... 541
10.7 執行不傳結果集的SQL陳述式 ................................................ 543
10.7.1 Step-By-Step:刪除資料庫資料 .................................. 543
10.8 TableAdapter與預存程序 ....................................................... 545
10.8.1 Step-By-Step:呼叫預存程序,回傳流水號 ................. 545
10.9 使用已存在的預存程序 .......................................................... 549
10.9.1 Step-By-Step:存取Null值 .......................................... 549
10.9.2 Step-By-Step:使用輸出參數 ..................................... 553
10.10 擴充TableAdapter功能 ........................................................... 555
10.10.1 Step-By-Step:讀取預存程序回傳值 ......................... 555
10.11 使用物件做為資料來源 .......................................................... 559
10.11.1 Step-By-Step:使用物件資料來源 ............................. 559
10.11.2 設計自訂的物件資料來源 .......................................... 562
10.12 使用Web服務做為資料來源 .................................................... 567 10.12.1 Step-By-Step:使用Web服務資料來源 ...................... 567
10.13 深入資料繫結 ........................................................................ 573
10.13.1 BindingContext與CurrencyManager物件 .................... 574
ADO.NET 2.0實戰講座 X X XII
10.13.2 Step-By-Step:手動設定資料繫結 ............................. 575
10.13.3 範例:使用程式設定資料繫結 .................................... 579
10.13.4 Step-by-Step:設定DataRelation瀏覽資料 ................. 581
10.14 總結 ..................................................................................... 585
Chapter 11 再談DataTable與DataView物件
11.1 搜尋DataTable的資料 ............................................................ 588
11.1.1 範例:使用Select方法搜尋資料 ................................... 588
11.1.2 範例:搜尋含單引號的字串 ......................................... 591
11.1.3 範例:指定日期搜尋條件 ............................................ 592
11.1.4 範例:指定資料排序方式 ............................................ 593
11.1.5 範例:搜尋不同版本的資料 ......................................... 595
11.1.6 效能考量 .................................................................... 597
11.2 變更DataTable欄位順序 ......................................................... 598
11.2.1 範例:呼叫SetOrdinal方法更改欄位順序 ...................... 598
11.3 Compute方法 ....................................................................... 599
11.3.1 範例:計算資料筆數 ................................................... 600
11.4 使用DataRowCollection搜尋資料 ........................................... 600
11.4.1 範例:使用Find方法搜尋資料 ...................................... 600
11.4.2 範例:使用組合主鍵查詢資料 ...................................... 602
11.5 使用DataView物件 ................................................................ 602
11.5.1 使用主鍵欄位排序 ...................................................... 606
11.5.2 使用RowFilter篩選資料 ............................................... 606
11.5.3 使用Sort定義排序 ....................................................... 608
11.5.4 Step-By-Step:使用DataView排序 .............................. 609
11.5.5 範例:使用程式建立DataView物件 .............................. 611
11.5.6 篩選不同版本資料 ...................................................... 613
11.5.7 範例:DataRowView物件與DataView .......................... 621
11.5.8 使用DataView搜尋資料 ............................................... 624
11.5.9 使用DataRowView新增、刪除、修改資料 .................... 628
11.6 複製DataView資料 ................................................................ 631
11.6.1 範例:使用ToTable方法複製資料到DataTable ............... 632
11.6.2 範例:使用Copyto方法複製資料到陣列 ....................... 633
11.7 DataView事件 ............................................................... 633
11.7.1 範例:攔截DataView ListChanged事件 ........................ 634
11.8 總結 ..................................................................................... 634
Chapter 12 建立ASP.NET資料存取網頁
12.1 使用開發工具管理資料庫 ....................................................... 636
12.1.1 Step-By-Step:建立資料庫檔案 .................................. 636
12.1.2 Step-By-Step:連接到已存在的資料庫 ........................ 641
12.2 了解ASP.NET 資料來源模型 ................................................... 644
12.2.1 使用資料來源元件 ...................................................... 644
12.2.2 資料來源控制項 .......................................................... 644
12.3 資料繫結 .............................................................................. 646
12.3.1 網頁資料繫結特色 ...................................................... 646
12.3.2 常用的資料繫結控制項 ................................................ 646
12.3.3 使用GridView控制項 ................................................... 647
12.3.4 使用參數過濾資料 ...................................................... 657
12.4 網頁資料繫結語法 ................................................................. 663
12.4.1 使用FormView控制項 .................................................. 663
12.4.2 Step-By-Step:使用FormView控制項顯示資料 ............ 664
12.4.3 使用DetailsView控制項 ............................................... 672
12.4.4 使用 ObjectDataSource 與TableAdapter精靈................ 675
12.5 建立Master/Details網頁顯示資料 ............................................ 691
12.5.1 Step-By-Step:建立Master/Details網頁 ....................... 692
12.6 設計多資料來源的網頁 ................................................... 694
12.6.1 Step-By-Step:在GridView內嵌DropDwonList控制項 ... 694
12.7 總結 ..................................................................................... 699
電子書
0301 使用SqlConnection元件建立連線 0302 使用元件連接到OleDB資料提供者 0303 使用元件連接到SQL Native Client資料提供者 0306 使用元件連接到資料庫檔案 0307 使用OleDbConnection元件連接到Access資料庫檔案 0309 常用連線字串 0401 使用DbCommand資料元件 0701 XML Schema簡介 0801 使用資料配接器組態精靈
目錄
X X XIII
top related