內容簡介
本書以開發人員在項目開發中經常遇到的問題和必須掌握的技術為中心,介紹了套用C#進行程式開發各個方面的知識和技巧,主要包括滑鼠與鍵盤控制、Windows系統開發、資料庫及LINQ開發、水晶報表與列印、註冊表操作、軟體安全控制等。全書分6篇21章,總計600個實例和600條經驗技巧。每個實例都是作者精心篩選的,具有很強的實用性,其中一些實例是開發人員難於尋覓的解決方案。
本書附帶有配套DVD光碟,光碟中提供有書中全部實例的原始碼,這些原始碼都是經過作者精心調試通過的,保證能夠在Windows XP、Windows 2003及Windows 7作業系統下編譯和運行。
本書非常適合C#項目開發人員、C#初學者及編程愛好者使用,同時也可作為培訓機構、大中專院校老師和學生的實踐參考用書。
前言
前 言
特別說明:
《C#開發實戰1200例》包括第I卷、第II卷總計1200個例子,本書是第II卷,包含600個例子。
程式開發是一項艱辛的工作,它不僅考驗開發人員的智力,更考驗開發人員的體力。縱觀國內的軟體企業,內部開發團隊挑燈夜戰,連續幾個月加班加點工作是常有的事情。筆者曾“有幸”參加過十幾個項目的開發工作,對編程有深刻的體會。編程是一項複雜的創造性工作,它需要開發人員掌握各方面的知識和積累豐富的開發經驗。項目開發中的一個問題可能會占用團隊幾天甚至十幾天的時間,但是如果開發人員遇到過類似的問題,也許幾分鐘就可以解決。這就是編程經驗的重要性,也是許多軟體企業用人時選擇有項目開發經驗者的主要原因。
本書筆者精選了項目開發中的600個實例,涵蓋了滑鼠與鍵盤控制、Windows系統開發、資料庫及LINQ開發、水晶報表與列印、註冊表操作、軟體安全控制等方面的內容,每一個知識點都提供了豐富的、具有很強實用性的實例,以幫助開發人員快速解決疑難問題。
本書內容
本書分為6篇21章,總計600個實例。書中所選實例均來源於一線開發人員的實際項目開發,囊括了開發中經常使用和需要解決的熱點、難點問題,參考本書,讀者可以快速解決開發中的難題,提高編程效率。本書亮點內容導航如下圖所示。
為了方便讀者學習和使用本書,書中在講解實例時採用統一的編排樣式,每個實例由“實例說明”、“關鍵技術”、“設計過程”和“秘笈心法”4部分構成,如下圖所示。
其中,“實例說明”部分採用圖文結合的方式介紹實例的功能和運行效果;“關鍵技術”部分介紹了實例使用的重點、難點技術;“設計過程”部分講解了實例的詳細開發過程;“秘笈心法”部分給出了與實例相關的技巧和經驗總結。
本書特色
* 實例豐富,經驗超值
本書精選了600個實例和600條經驗技巧,涵蓋了編程中多個方面的各種套用。用戶開發中所需的技術、技巧、解決方案幾乎都可以找到。
* 特點突出,功能完善,實用性強
書中所選實例均是項目開發中經常需要使用或實現的技術,有許多實例是開發人員夢寐以求的。
* 視頻錄像,全面介紹實例開發全過程
在每一章實例中作者選擇重點和難點實例進行全程視頻講解,以幫助讀者理解這些實例的開發過程。
* 贈送所有實例源碼
書中所有實例均提供有原始碼,用戶在開發中可以快速借鑑或套用。
* 段落工整、簡潔,圖文結合,更容易學習
* 編碼規範,注釋詳盡
為了提高用戶的實際開發能力,書中代碼都是經過嚴格審查的,可以與商業源碼相媲美,並且為了方便用戶閱讀代碼,幾乎所有代碼都提供有詳細注釋。
超值DVD光碟
為了幫助讀者學習和使用書中的實例,本書附贈有DVD光碟,其中不僅提供了書中所有實例項目的原始碼、素材,還提供了關鍵實例的開發視頻講解。光碟目錄如下圖所示。
本書約定
* 實例使用方法
用戶在學習本書的過程中,可以從光碟中複製實例,去掉實例的唯讀屬性。有些實例需要使用相應的資料庫或第三方資源,這些實例在使用前需要進行相應配置,詳細使用方式可參考本書光碟使用說明書。此外,如果用戶直接將本書實例用於商業用途,由此產生的不良後果由用戶自己承擔。
* 實例及錄像位置
書中實例在光碟中的存儲格式為“MR\章號\實例序號”。例如,“MR\04\090”表示實例090,位於第4章。
書中關鍵實例在光碟中提供了開發錄像,錄像的存儲格式與實例的存儲格式是相同的。例如,查看實例090的開發錄像,可以在光碟中“MR\04\090”路徑下找到,錄像名稱與實例名稱相同,格式為EXE格式。
* 錄像使用說明
本書贈送的實例錄像採用EXE檔案格式,無須使用播放器,雙擊就可以直接播放。在主目錄中,目錄前有錄像圖示的實例,表示在光碟中存在視頻錄像。
* 部分實例只給出關鍵代碼
由於篇幅限制,書中有些實例只給出了關鍵代碼,完整代碼可參考光碟實例程式。
讀者人群
本書非常適合以下人員閱讀:
* 從事C#編程行業的開發人員
* 有一定語言基礎,想進一步提高技能的人員
* 大中專院校的老師和學生
* 即將走上工作崗位的大學畢業生
* 相關培訓機構的老師和學員
* C#編程愛好者
本書作者
本書由明日科技組織編寫,參加編寫的程式設計師有王小科、王軍、趙會東、董大永、尹強、李繼業、張磊、賽奎春、高春艷、宋坤、劉銳寧、梁水、李偉明、劉彬彬、安劍、孫秀梅、鞏建華、房大偉、呂雙、劉雲峰、王國輝、李鍾尉、張振坤、陳丹丹、盧翰、白偉明、潘凱華、劉欣、李慧、梁曉嵐、楊麗、顧麗麗、劉齡齡、王樂樂、陳英、李賀、朱曉、楊明、肖鑫、李鑫等。由於筆者水平有限,疏漏和不足之處在所難免,懇請廣大讀者朋友批評指正。
特別提醒:
親愛的讀者朋友,由於近期紙張價格和印製成本大幅上漲,為不增加讀者朋友的負擔,又不減少書的內容,本書的最後幾章內容不得不放在配書光碟中(參見目錄),由此給您帶來了不便,在此深表歉意。
編 者
圖書目錄
第1篇 滑鼠與鍵盤控制篇
第1章 滑鼠操作控制 2
1.1 獲取滑鼠信息 3
實例001 獲取滑鼠雙擊時間間隔 3
實例002 獲取游標閃爍的頻率 4
實例003 獲取滑鼠鍵數 4
實例004 顯示滑鼠的等待游標 5
實例005 獲得滑鼠在窗體上的位置 6
實例006 記錄滑鼠行為 7
?實例007 通過截取系統訊息判斷滑鼠的單擊鍵 8
1.2 滑鼠基本設定 10
實例008 定義滑鼠指針形狀 10
實例009 自定義滑鼠的圖片 11
實例010 自定義動畫滑鼠 12
實例011 交換滑鼠左右鍵功能 14
實例012 限制滑鼠在某一區域工作 15
實例013 禁止滑鼠按鍵 16
?實例014 滑鼠設定器 21
1.3 滑鼠操作在實際中的套用 24
實例015 隱藏和顯示滑鼠 24
實例016 滑鼠雙擊窗體時模擬鍵盤Tab鍵操作 25
實例017 使用滑鼠拖放複製文本 26
實例018 利用滑鼠繪圖 27
實例019 模擬滑鼠操作 28
?實例020 實現滑鼠穿透窗體 30
第2章 鍵盤操作控制 32
2.1 獲取鍵盤信息 33
實例021 獲取組合鍵 33
實例022 獲取功能鍵 34
實例023 判斷NumLock鍵和CapsLock鍵
是否鎖定 34
實例024 將回車鍵轉換為Tab鍵 36
2.2 鍵盤熱鍵的設定 37
實例025 禁止Alt+F4組合鍵關閉窗體 37
實例026 實現按下Esc鍵關閉窗體 38
實例027 禁止系統的Ctrl+C/X/V組合鍵 39
實例028 避免按回車鍵產生“嘀”聲 40
?實例029 設定/禁止系統熱鍵 41
2.3 鍵盤操作在實際中的套用 48
實例030 打開和關閉輸入法編輯器 48
?實例031 使用鍵盤控制窗體的移動 49
?實例032 虛擬鍵盤操作 51
實例033 多功能鍵盤 60
第2篇 Windows系統開發篇
第3章 獲取系統相關信息 66
3.1 獲取計算機系統信息 67
實例034 獲取系統時間 67
實例035 獲取系統目錄 68
實例036 獲取計算機名稱 68
實例037 獲取當前程式運行目錄 69
實例038 獲得作業系統版本號 70
實例039 獲取系統啟動後經過的時間 71
?實例040 獲取系統列尺寸 72
實例041 改變系統提示信息 73
實例042 獲取系統環境變數 74
3.2 獲取計算機硬體信息 76
實例043 獲取計算機記憶體信息 76
實例044 獲取CPU相關信息 78
實例045 獲取主機板相關信息 79
實例046 獲得硬碟序列號 80
實例047 獲取所有邏輯分區 81
實例048 獲取磁碟空間 82
?實例049 獲得磁碟的檔案系統類型 83
實例050 判斷驅動器類型並獲取其屬性 84
實例051 獲取顯示設備的名稱及PNPDeviceID 86
實例052 獲取聲音設備的名稱及PNPDeviceID 87
實例053 獲取螢幕的解析度 88
實例054 獲取系統已經安裝的印表機信息 89
3.3 獲取系統網路信息 90
實例055 得到本地機器的IP位址 90
實例056 檢測計算機是否存在網路連線 92
實例057 判斷計算機的在線上狀態 92
3.4 獲取特殊資料夾路徑 94
?實例058 獲取系統特殊資料夾路徑 94
實例059 得到本地運行的EXE的路徑 96
實例060 獲取映射驅動器路徑 97
3.5 獲取Windows當前用戶信息 97
實例061 獲取當前用戶 97
實例062 判斷當前用戶是哪種用戶 98
3.6 獲取Windows日誌信息 100
實例063 獲取系統日誌信息 100
實例064 獲取安全日誌信息 102
實例065 獲取應用程式日誌信息 103
實例066 創建並寫入自定義日誌信息 104
實例067 向系統日誌寫入自定義數據 105
實例068 向應用程式日誌寫入自定義信息 106
第4章 系統控制套用 107
4.1 啟動相關 108
實例069 進入Windows前發出警告 108
實例070 將計算機設定為休眠狀態 109
實例071 禁止用戶關閉計算機 110
實例072 實現註銷、關閉和重啟計算機 111
實例073 定時關閉計算機 114
實例074 遠程關閉與重啟計算機 117
4.2 磁碟相關設定 120
實例075 取消磁碟共享 120
實例076 檢測磁碟是否準備好 121
?實例077 圖表顯示磁碟容量 122
實例078 修改磁碟格式 124
實例079 格式化磁碟 125
4.3 系統設定 126
實例080 禁止使用Windows任務管理器 126
實例081 為檔案新增右鍵選單項 127
實例082 修改計算機的默認印表機 128
實例083 通過註冊表設定桌面背景 129
實例084 利用API設定桌面背景 130
實例085 音樂風景桌面 132
實例086 設定系統系統列時間 135
實例087 設定螢幕解析度 137
實例088 修改計算機名稱 138
實例089 顯示器控制 139
?實例090 螢幕放大鏡 141
4.4 系統隱藏 143
實例091 隱藏、顯示系統列 143
實例092 隱藏、顯示開始按鈕 145
實例093 使桌面圖示文字透明 146
實例094 檢索系統中正在運行的任務 147
實例095 隱藏、顯示桌面圖示 148
4.5 系統控制 150
實例096 切換輸入法 150
實例097 全形半角轉換 151
實例098 製作系統掛機鎖 154
實例099 開機啟動項管理 158
實例100 啟動Windows系統服務 159
實例101 執行命令行命令 161
4.6 系統監控 162
實例102 檢測系統啟動模式 162
實例103 監視剪貼簿的內容 163
實例104 記憶體使用狀態監控 164
實例105 鍵盤鉤子禁止熱鍵 165
?實例106 CPU使用率 167
第5章 程式控制套用 170
5.1 程式控制 171
實例107 打開控制臺中的程式 171
?實例108 動態系統托盤圖示 172
實例109 控制程式不出現在系統列上 174
實例110 啟動螢幕保護 175
實例111 使用回車鍵控制滑鼠焦點 176
實例112 在TextBox控制項中禁用滑鼠右鍵 177
實例113 製作螢幕截圖程式 178
實例114 複製程式本身 180
實例115 分段顯示電話號碼顏色 181
5.2 程式運行 182
實例116 使用互斥量禁止程式運行多次 182
實例117 使用進程名禁止程式運行多次 183
實例118 清空資源回收筒 185
5.3 計算機控制 186
實例119 設定系統僅能運行的程式 186
?實例120 獲取本地計算機上所有的進程 187
實例121 獲取遠程計算機上所有的進程 189
實例122 調用外部的EXE檔案 190
實例123 關閉外部已開啟的程式 191
?實例124 進程管理器 192
實例125 實現行業軟體系統註銷功能 195
實例126 創建應用程式捷徑 195
實例127 使PC喇叭發音 197
第3篇 資料庫及LINQ開發篇
第6章 SQL查詢相關技術 200
6.1 SELECT子句 201
實例128 查詢特定列數據 201
實例129 使用列別名 202
實例130 在列上加入計算 204
實例131 使用函式設定條件 205
6.2 查詢常量 206
實例132 查詢數字 206
實例133 查詢字元串 207
實例134 查詢日期數據 208
實例135 查詢邏輯型數據 210
實例136 查詢空(‘’或NULL)數據 211
6.3 查詢變數 212
實例137 利用變數查詢字元串數據 212
實例138 利用變數查詢數值型數據 214
實例139 利用變數查詢日期型數據 215
6.4 模糊查詢 217
實例140 利用“_”通配符進行查詢 217
實例141 利用“%”通配符進行查詢 218
實例142 利用“[]”通配符進行查詢 219
實例143 利用“[^]”通配符進行查詢 221
實例144 複雜的模糊查詢 222
6.5 TOP和PERCENT限制查詢結果 224
實例145 查詢前10名數據 224
實例146 取出數據統計結果的後10名數據 225
?實例147 查詢第10到第20名的數據 226
實例148 查詢銷售量占前50%的圖書信息 228
實例149 查詢庫存數量占後20%的圖書信息 229
6.6 數值查詢 231
實例150 判斷是否為數值 231
實例151 在查詢時對數值進行取整 232
實例152 將查詢到的數值四捨五入 233
實例153 使用三角函式計算數值 234
實例154 求數值的絕對值 235
實例155 根據生成的隨機數查詢記錄 236
實例156 根據查詢數值的符號顯示具體文本 238
6.7 字元串查詢 239
實例157 實現字元串的大小寫轉換 239
實例158 返回字元在字元串中出現的次數 240
實例159 返回字元串中的子串 241
實例160 刪除字元串中的子串 243
實例161 查找並替換字元串 244
實例162 比較兩個字元串 246
6.8 周期、日期查詢 248
實例163 判斷是否為日期 248
實例164 查詢指定日期的數據 249
?實例165 查詢指定時間段的數據 250
實例166 按年、月或日查詢數據 251
實例167 返回當前日期時間及其對應的星期 253
實例168 查詢指定時間間隔的數據 254
6.9 比較、邏輯、重複查詢 255
實例169 利用運算符查詢指定條件的數據 255
實例170 NOT與謂詞進行組合條件的查詢 257
實例171 查詢時不顯示重複記錄 258
實例172 列出數據中的重複記錄和記錄條數 259
6.10 在查詢中使用OR和AND運算符 260
實例173 利用OR運算符進行查詢 260
實例174 利用AND運算符進行查詢 261
實例175 同時利用OR、AND運算符進行查詢 262
6.11 排序、分組統計 263
實例176 數據分組統計(單列) 263
實例177 在分組查詢中使用ALL關鍵字 265
實例178 在分組查詢中使用CUBE運算符 266
實例179 在分組查詢中使用ROLLUP 267
實例180 對數據進行降序查詢 268
實例181 對數據進行多條件排序 269
實例182 對統計結果進行排序 270
實例183 按姓氏筆畫排序 272
?實例184 按姓氏拼音排序 273
實例185 按倉庫分組統計圖書庫存(多列) 274
實例186 多表分組統計 275
實例187 使用COMPUTE 276
實例188 使用COMPUTE BY 278
6.12 聚合函式 279
實例189 利用聚合函式SUM對銷售額進行匯總 279
實例190 利用聚合函式AVG求某班學生的
平均年齡 280
實例191 利用聚合函式MIN求銷售額、利潤
最少的商品 281
實例192 利用聚合函式MAX求月銷售額
完成最多的員工 283
實例193 利用聚合函式COUNT求日銷售額
大於某值的商品數 284
?實例194 利用聚合函式FIRST或LAST求數據表
中第一條或最後一條記錄 286
實例195 利用聚合函式顯示資料庫中重複記錄的
數量 287
實例196 查詢大於平均值的所有數據 288
實例197 獲取無重複或者不為空的記錄數 290
實例198 隨機查詢求和 291
實例199 統計某個值出現的次數 292
6.13 多表查詢(連線查詢) 293
實例200 利用FROM子句進行多表查詢 293
實例201 使用表別名 295
實例202 合併多個結果集 296
實例203 笛卡兒乘積查詢 297
6.14 嵌套查詢 298
實例204 簡單嵌套查詢 298
實例205 複雜嵌套查詢 299
實例206 嵌套查詢在查詢統計中的套用 301
6.15 子查詢 302
實例207 用子查詢做派生的表 302
實例208 用子查詢作表達式 304
實例209 使用ALL謂詞引入子查詢 305
實例210 使用ANY/SOME謂詞引入子查詢 307
實例211 使用EXISTS運算符引入子查詢 308
實例212 在HAVING子句中使用子查詢
過濾數據 310
實例213 在UPDATE語句中套用子查詢 311
實例214 使用子查詢刪除數據 312
6.16 組合語句 314
實例215 使用組合查詢 314
實例216 多表組合查詢 316
實例217 對組合查詢後的結果進行排序 317
實例218 獲取組合查詢中兩個結果集的交集 319
實例219 獲取組合查詢中兩個結果集的差集 320
6.17 內連線查詢 321
實例220 簡單內連線查詢 321
實例221 複雜內連線查詢 322
實例222 使用INNER JOIN實現自身連線 324
實例223 使用INNER JOIN實現等值連線 325
實例224 使用INNER JOIN實現不等連線 326
實例225 使用內連線選擇一個表與另一個表中
行相關的所有行 327
6.18 外連線查詢 329
實例226 LEFT OUTER JOIN查詢 329
實例227 RIGHT OUTER JOIN查詢 330
實例228 使用外連線進行多表聯合查詢 331
6.19 利用IN進行查詢 333
實例229 用IN查詢表中的記錄信息 333
實例230 使用IN引入子查詢限定查詢範圍 334
實例231 使用NOT IN運算符引入子查詢 335
6.20 交叉表查詢 336
實例232 利用Transform分析數據(Access) 336
實例233 利用Transform動態分析數據
(Access) 338
實例234 靜態交叉表(SQL Server 2005) 340
?實例235 動態交叉表(SQL Server 2005) 342
6.21 函式查詢 343
實例236 在查詢語句中使用格式化函式 343
實例237 在查詢語句中使用字元串函式 344
實例238 在查詢中使用日期函式 346
6.22 索引查詢 347
實例239 使用UNIQUE關鍵字創建唯一索引 347
實例240 使用CLUSTERED關鍵字創建聚簇
索引 348
實例241 使用索引視圖查詢數據 350
實例242 刪除索引 352
6.23 套用存儲過程 353
實例243 使用存儲過程查詢多表中的數據 353
實例244 使用存儲過程向表中添加數據 355
實例245 使用存儲過程刪除表中的數據 358
6.24 HAVING語句套用 361
實例246 利用HAVING子句過濾分組數據 361
實例247 HAVING子句套用在多表查詢中 362
第7章 SQL高級套用 364
7.1 SQL中的流程控制語句 365
實例248 使用BEGIN…END語句控制批處理 365
實例249 使用IF語句指定執行條件 366
實例250 使用IF EXISTS語句檢測數據是否
存在 367
實例251 使用WHILE語句執行循環語句塊 368
實例252 使用CASE語句執行分支判斷 369
實例253 使用RETURN語句執行返回 371
實例254 使用WAITOF語句延期執行語句 372
實例255 使用GOTO語句實現跳轉 373
實例256 使用TRY CATCH語句進行異常處理 375
實例257 使用PRINT語句進行列印 376
實例258 使用RAISERROR語句返回錯誤信息 377
實例259 使用SET語句進行選項設定 378
7.2 視圖的套用 379
實例260 在C#中套用視圖 379
實例261 獲取資料庫中的全部用戶視圖 380
?實例262 通過視圖修改數據 380
實例263 通過視圖過濾數據 382
實例264 使用視圖格式化檢索到的數據 383
實例265 對視圖定義文本進行加密 384
實例266 使用視圖生成計算列 385
7.3 存儲過程的套用 387
實例267 C#中套用存儲過程 387
?實例268 套用存儲過程添加數據 388
實例269 套用存儲過程修改數據 390
實例270 套用存儲過程刪除數據 391
實例271 獲取資料庫中全部的存儲過程 392
實例272 在存儲過程中使用return定義返回值 394
實例273 執行帶回傳參數的存儲過程 395
實例274 重命名存儲過程 396
實例275 在存儲過程中使用事務 397
實例276 加密存儲過程 399
實例277 查看存儲過程的相關信息 400
7.4 觸發器的套用 401
實例278 獲取資料庫中的觸發器 401
實例279 使用Insert觸發器向薪水錶中添加
薪水信息 402
實例280 Update觸發器在系統日誌中的套用 404
實例281 使用Delete觸發器刪除員工薪水信息 405
實例282 觸發器的嵌套使用 406
使用283 使用遞歸觸發器實現每次刪除一條
記錄功能 408
實例284 使用觸發器刪除相關聯的兩表間的數據 409
7.5 事務的使用 411
實例285 使用事務同時提交多個數據表 411
實例286 使用隱式事務實現多表提交數據 413
?實例287 使用事務批量刪除生產單信息 414
實例288 在事務中的表級鎖定 417
實例289 實現事務的並發控制 420
實例290 創建分散式事務 422
7.6 游標的套用 423
實例291 創建一個標準、唯讀和更新游標 423
使用292 利用sp_cursor_list查看游標屬性 425
實例293 利用sp_describe_cursor查看游標
全局特性 426
實例294 利用游標在商品銷售表中返回指定行
數據 428
實例295 使用ORDER BY子句改變游標中
行的順序 429
實例296 使用游標定位刪除指定員工信息 431
實例297 使用參數化游標更改員工部門信息 432
實例298 使用嵌套游標查詢兩個員工表間的
員工信息 433
7.7 SQL Server與XML互操作 435
實例299 使用FOR XML RAW參數讀取所有
圖書信息 435
實例300 將存儲在XML中的圖書信息插入
數據表中 436
實例301 將圖書銷售表中的欄位作為節點元素
輸出 437
實例302 查詢存儲圖書信息的XML節點 439
實例303 獲取XML節點或者元素值 440
實例304 編輯存儲圖書信息的XML節點 441
實例305 將XML節點轉換為相應的數據表
欄位 444
第8章 ADO。NET開發技術 446
8.1 連線Access資料庫 447
實例306 連線Access資料庫 447
實例307 連線加密的Access資料庫 448
實例308 自動識別Access 2000資料庫路徑 449
實例309 連線網路上共享的Access 2000資料庫 450
實例310 將Access資料庫導入Excel檔案中 452
8.2 連線SQL Server資料庫 453
實例311 使用ODBC DSN連線SQL Server
資料庫 453
實例312 使用ODBC非DSN連線SQL Server
資料庫 455
實例313 使用OLE DB連線SQL Server資料庫 457
實例314 建立SQL Server資料庫連線 458
8.3 連線其他資料庫 459
實例315 連線Excel 459
實例316 連線文本檔案 460
8.4 資料庫結構的讀取與修改 462
?實例317 讀取SQL Server資料庫結構 462
實例318 修改SQL Server資料庫結構 464
8.5 數據錄入 466
實例319 利用數據綁定控制項錄入數據 466
實例320 使用ADO。NET對象錄入數據 467
實例321 利用SQL語句錄入數據 469
實例322 利用存儲過程錄入數據 470
?實例323 向SQL Server資料庫中批量寫入
海量數據 472
8.6 圖片存取技術 473
實例324 使用存取檔案名稱的方法存取圖片 473
實例325 使用二進制存取用戶頭像 475
8.7 數據修改 476
實例326 利用數據綁定控制項修改數據 476
實例327 利用數據對象修改數據 478
實例328 利用SQL語句修改數據 479
實例329 利用存儲過程修改數據 480
實例330 使用斷開式連線批量更新資料庫中
數據 482
8.8 數據保存前判斷 483
實例331 判斷是否重複輸入數據 483
實例332 判斷輸入數據是否符合要求 485
8.9 數據刪除 487
實例333 刪除表格中指定的記錄 487
實例334 利用SQL語句刪除數據 488
實例335 利用SQL語句清空數據表 489
8.10 數據記錄 490
?實例336 分頁顯示信息 490
實例337 移動記錄 491
實例338 綜合查詢職工詳細信息 492
8.11 數據維護 495
實例339 在C#中創建資料庫 495
實例340 在C#中刪除資料庫 497
實例341 在C#中創建數據表 498
實例342 在C#中刪除數據表 499
實例343 在C#中分離SQL Server資料庫 500
實例344 在C#中附加SQL Server資料庫 502
實例345 在C#中附加單檔案SQL Server
資料庫 503
8.12 數據備份恢復 504
實例346 備份SQL Server資料庫 504
實例347 還原SQL Server資料庫 506
8.13 其他資料庫開發技術 509
實例348 判斷計算機中是否安裝了SQL軟體 509
實例349 開啟SQL Server資料庫 510
實例350 斷開SQL Server資料庫與其他套用
程式的連線 511
實例351 利用SQL語句執行外圍命令 512
實例352 對軟體進行初始化 513
實例353 帶圖像列表的系統登錄程式 515
第9章 LINQ to Objects——查詢記憶體中
對象 517
9.1 LINQ基礎套用 518
實例354 使用隱式類型局部變數實現字母的
大小寫轉換 518
實例355 使用自動實現屬性記錄用戶信息 519
實例356 使用對象初始化器創建對象並為其
屬性賦值 520
實例357 使用Lambda表達式查找指定字元串 521
實例358 使用擴展方法顯示員工信息 522
?實例359 線上程中使用匿名方法防止窗體
“假死” 524
實例360 使用Predicate委託查找年齡大於30
的員工 525
實例361 使用Action委託實現遍歷所有員工
信息 526
實例362 使用Func委託實現計算所有員工
工資總和 527
9.2 限定符操作 528
實例363 檢查序列中所有元素是否都滿足
指定條件 528
實例364 檢查序列中是否包含指定元素 529
9.3 元素操作 531
實例365 獲取指定位置的元素 531
實例366 使用LINQ生成隨機序列 532
實例367 使用LINQ初始化數組 533
實例368 使用LINQ在一個循環中遍歷多個
數組 534
實例369 篩選指定類型的元素 535
實例370 使用LINQ實現銷售單查詢 536
?實例371 獲取某類商品最後一次銷售單價 538
9.4 使用LINQ操作字元串 539
實例372 使用LINQ生成字元串 539
實例373 查找字元串中包含的大寫字母 540
實例374 查找字元串中包含的數字字元 541
實例375 過濾文章中包含指定單詞的句子 542
實例376 統計每個單詞在文章中出現的次數 543
實例377 查找文章中以ing結尾的單詞 544
實例378 將字元串數組按元素長度分組 547
9.5 類型轉換操作 548
實例379 將數據源轉換為IEnumerable<T>類型 548
實例380 將數據源轉換為IQueryable<T>類型 549
實例381 轉換為泛型列表 550
實例382 轉換為字典類型 551
實例383 轉換為一對多字典 552
實例384 使用LINQ轉換序列或集合 554
9.6 使用LINQ操作集合 556
實例385 操作泛型列表List<T> 556
實例386 操作泛型排序列表SortedList
<TKey,TValue> 557
實例387 操作泛型雙向鍊表LinkedList<T> 558
實例388 操作泛型佇列Queue<T> 559
實例389 操作泛型堆疊Stack<T> 561
實例390 操作泛型哈希集HashSet<T> 562
實例391 操作泛型字典Dictionary
<TKey,TValue> 563
實例392 操作泛型通用集合Collection<T> 565
實例393 操作泛型綁定列表BindingList<T> 566
9.7 使用LINQ技術操作對象 567
實例394 使用LINQ技術對對象進行篩選操作 567
實例395 使用LINQ技術對對象進行投影操作 568
實例396 使用LINQ技術對對象進行排序操作 570
實例397 使用LINQ技術對對象進行聚合操作 572
實例398 使用LINQ技術對對象進行集合操作 574
實例399 使用LINQ技術對對象進行元素操作 576
實例400 使用LINQ技術對對象進行聯接操作 577
?實例401 使用LINQ技術獲取檔案詳細信息 579
第10章 LINQ to SQL——查詢關係
資料庫 581
10.1 數據查詢 582
實例402 查詢單表數據 582
實例403 獲取與Not Exists等價的語句 585
實例404 按多個欄位降序排序數據表 586
?實例405 關聯查詢多表數據 587
實例406 按照多個條件分組 588
實例407 實現LINQ動態查詢的方法 589
10.2 聚合操作 591
實例408 Count操作——統計每種商品的
銷售次數 591
實例409 Sum操作——統計每種商品的
銷售總額 592
實例410 Max操作——統計每種商品的
最高銷售價 593
實例411 Min操作——統計每種商品的
最低銷售價 594
實例412 Average操作——統計每種商品的
銷售均價 595
實例413 Aggregate操作——統計月銷售額 596
10.3 集合操作 597
實例414 Distinct操作——去除重複的
返貨記錄 597
實例415 差集操作——獲取從未返過貨的
商品列表 598
實例416 交集操作——獲取有過返貨記錄的
商品列表 599
實例417 並集操作——查詢每種商品的
銷售總數 600
10.4 DataContext類的方法 601
實例418 檢測資料庫是否存在 601
實例419 直接執行SQL查詢 602
10.5 數據操作 603
實例420 生成LINQ to SQL對象模型 603
實例421 獲取資料庫連線信息 606
實例422 使用LINQ技術查詢SQL資料庫中
的數據 608
實例423 使用LINQ技術向SQL資料庫中
添加數據 610
?實例424 使用LINQ技術在SQL資料庫中
修改數據 611
實例425 使用LINQ技術在SQL資料庫中
刪除數據 612
實例426 使用存儲過程查詢單表數據 613
實例427 使用SQL Server中的函式過濾數據 615
實例428 根據外鍵獲取主表信息 616
實例429 使用LINQ為列表控制項提供數據 617
實例430 使用LINQ技術防止SQL注入式攻擊 618
?實例431 使用LINQ技術實現數據分頁 620
第11章 LINQ to DataSet——查詢
ADO。NET數據集 623
11.1 數據查詢 624
實例432 使用LINQ技術查詢DataSet中的
單個表 624
實例433 使用LINQ技術對DataSet進行
投影操作 625
?實例434 使用LINQ技術查詢DataSet中的
多個表 626
實例435 使用LINQ技術對DataSet進行
篩選操作 627
實例436 使用LINQ技術對DataSet進行
排序操作 628
11.2 數據分區操作 629
實例437 從頭開始提取指定數量的記錄 629
?實例438 從頭開始提取滿足指定條件的記錄 631
實例439 跳過序列中指定數量的記錄 632
實例440 跳過滿足指定條件的記錄 633
11.3 類型轉換操作 634
實例441 將查詢結果轉換為DataTable 634
實例442 將查詢結果轉換為DataView 635
11.4 其他操作 636
實例443 聚合操作——按客戶分組匯總
銷售金額 636
實例444 使用LINQ技術對DataSet進行
元素操作 637
實例445 使用LINQ技術查詢前5名數據 639
?實例446 使用LINQ技術對數據進行排序 640
實例447 使用LINQ技術統計員工的工資總額 641
第12章 LINQ to XML——操作XML檔案 643
12.1 XML檔案基本操作 644
?實例448 使用LINQ技術創建XML檔案 644
實例449 使用LINQ技術對XML檔案進行讀取 645
12.2 查詢操作 647
實例450 查找根元素 647
實例451 查找指定名稱的元素 648
實例452 查找指定屬性的元素 649
實例453 遍歷指定節點下的所有對象 650
實例454 只返回指定節點下的注釋 652
實例455 訪問指定節點的父節點 653
實例456 返回節點集合中每個節點的所有
上級節點 654
實例457 返回節點集合中每個節點的所有
下級節點 656
實例458 返回元素集合中每個元素的所有
屬性 657
12.3 元素操作 659
?實例459 使用LINQ技術向XML檔案中
添加數據 659
實例460 使用LINQ技術修改XML檔案中
的數據 660
實例461 替換指定節點下的所有元素 661
實例462 使用LINQ技術刪除XML檔案中的
數據 662
實例463 合計XML元素值 664
12.4 屬性操作 665
實例464 添加屬性到XML檔案 665
實例465 修改元素的屬性值 666
實例466 刪除一個元素的所有屬性 667
實例467 將XML檔案中的屬性轉換為元素 669
12.5 其他操作 670
實例468 添加注釋到XML檔案 670
實例469 添加聲明到XML檔案 671
實例470 添加文檔類型到XML檔案 672
實例471 使用LINQ to XML轉換XML 673
?實例472 讀取XML檔案並更新到資料庫 676
第4篇 水晶報表與列印篇
第13章 Windows列印組件的使用 680
13.1 列印基礎 681
實例473 列印窗體中的數據 681
實例474 圖像列印 683
?實例475 自定義橫向或縱向列印 684
實例476 自定義列印頁碼範圍 686
實例477 分頁列印 688
13.2 常用報表的列印 690
實例478 列印條形碼 690
實例479 列印學生個人簡歷 691
實例480 列印一個空學生證 693
實例481 列印商品入庫單據 695
實例482 批量列印學生證書 697
第14章 水晶報表設計技術 701
14.1 水晶報表基本設定 702
實例483 快速創建水晶報表 702
實例484 設計帶圖片的水晶報表 704
實例485 使圖片成為整個報表的背景 706
實例486 設定水晶報表中節的背景圖片 707
實例487 設定水晶報表中節的背景色 709
?實例488 在水晶報表中添加圖表 710
實例489 設定水晶報表的頁面 713
實例490 在水晶報表中添加節 714
實例491 在水晶報表中移動節的順序 715
實例492 在水晶報表中合併節 716
實例493 在水晶報表中刪除節 717
實例494 在水晶報表中顯示與隱藏節 718
實例495 設定多列樣式水晶報表 719
實例496 設定水晶報表中節的高度 721
實例497 設定水晶報表的摘要信息 722
實例498 設定水晶報表的列印日期與時間 723
14.2 水晶報表的格式化 724
實例499 在水晶報表中使用文本對象 724
?實例500 使用公式欄位 726
實例501 在水晶報表中使用線 728
實例502 在水晶報表中使用方框 729
14.3 對水晶報表進行排序與分組 730
實例503 排序水晶報表中的數據 730
實例504 對水晶報表中的數據進行分組 731
實例505 在水晶報表中篩選數據 732
?實例506 設計分組統計報表 734
實例507 對分組報表中的頁碼進行設定 735
第15章 水晶報表開發套用 737
15.1 水晶報表常用套用 738
實例508 利用報表專家設計並顯示學生
基本信息 738
實例509 動態綁定水晶報表 742
實例510 在水晶報表中使用Access資料庫 743
實例511 在水晶報表中使用SQL Server資料庫 745
實例512 高數成績大於90分使用紅色字型標記 746
?實例513 訂貨總金額超過10萬元顯示“恭喜
獲獎”文字 748
實例514 薪資大於或等於1萬元使用藍色
字型標記 750
實例515 篩選薪資大於2000元的男員工 752
實例516 按類別分組統計圖書庫存 754
實例517 按成績總分降序排序 755
實例518 部門銷售量占公司總銷售量的
業績百分比 757
實例519 在水晶報表中使用交叉表 758
15.2 子報表的使用 760
實例520 插入子報表 760
實例521 編輯與重新導入子報表 761
實例522 根據需要顯示子報表 763
實例523 刪除子報表 765
15.3 使用水晶報表設計常用報表 766
實例524 設計信封標籤報表 766
?實例525 設計商品入庫報表 767
實例526 設計學生個人簡歷報表 768
實例527 設計匯款單式報表 769
第5篇 註冊表操作篇
第16章 註冊表基本操作 772
16.1 註冊表基本操作 773
實例528 獲取註冊表信息 773
?實例529 向註冊表中寫入信息 774
實例530 修改註冊表信息 776
實例531 搜尋註冊表內容 777
實例532 刪除註冊表信息 778
實例533 備份註冊表 780
實例534 還原註冊表 781
實例535 禁止遠程修改註冊表 782
實例536 禁止運行註冊表 783
16.2 註冊表在實際中的套用 784
實例537 使用C#打開Windows註冊表 784
實例538 建立數據檔案與程式的關聯 785
?實例539 使應用程式開機自動運行 786
實例540 在註冊表中保存窗體的大小和位置 788
實例541 最佳化開關機速度 789
實例542 最佳化選單顯示速度 790
實例543 最佳化網上鄰居顯示速度 791
?實例544 獲取本機安裝的軟體清單 792
第17章 系統個性化設定 793
17.1 開始選單設定 794
實例545 啟用和禁用“開始”選單中的
“運行”功能 794
實例546 禁止和開啟“開始”選單中的
“關機”功能 795
實例547 在右鍵選單中添加“用記事本
打開”項 796
17.2 個性桌面 797
?實例548 隱藏桌面捷徑圖示的小箭頭 797
實例549 禁用和啟用主題選項卡 798
實例550 禁用和啟用外觀選項卡 799
實例551 禁用和啟用螢幕保護選項卡 800
?實例552 設定系統列時間樣式 801
實例553 刪除“我的電腦”上下文選單中的
“屬性” 802
17.3 系統設定 803
實例554 將磁碟驅動器隱藏 803
實例555 禁止顯示系統列的右鍵選單 804
實例556 禁止對系統列位置進行改變 806
?實例557 禁止使用Windows任務管理器 807
實例558 禁止使用控制臺的添加刪除程式 808
實例559 禁止使用命令提示符 809
實例560 關機時自動關閉停止回響的程式 810
第18章 IE瀏覽器設定 811
18.1 IE瀏覽器基本設定 812
實例561 隱藏桌面上的IE瀏覽器圖示 812
實例562 禁止修改IE瀏覽器主頁 814
?實例563 設定IE瀏覽器的默認主頁 815
實例564 修改IE瀏覽器標題欄內容 816
實例565 設定IE地址欄的自動完成功能 817
18.2 IE瀏覽器高級套用 818
?實例566 向收藏夾中添加網址 818
實例567 清除IE地址欄中的歷史網址 819
實例568 設定IE瀏覽器的默認下載路徑 821
實例569 清空IE瀏覽器的快取區 822
?實例570 使用WebBrowser控制項製作IE
瀏覽器 823
特別提醒:
親愛的讀者朋友,由於近期紙張價格和印製成本大幅上漲,為不增加讀者朋友的負擔,又不減少書的內容,本書以下章節內容不得不放在配書光碟中,由此給您帶來了不便,在此深表歉意。
第6篇 軟體安全控制篇
第19章 加密與解密技術 828
(本章內容在配書光碟中)
19.1 數據的加密與解密 829
實例571 異或算法對數字進行加密與解密 829
?實例572 使用MD5算法加密數據 830
實例573 使用ROT13算法加密解密數據 831
實例574 使用愷撒密碼算法加密密碼 833
?實例575 對數據報進行加密保障通信安全 834
實例576 使用one-time pad算法加密數據 839
實例577 使用偽隨機數加密技術加密用戶
登錄密碼 840
實例578 以XML格式導入導出密鑰 842
實例579 以參數格式導入導出密鑰 844
19.2 檔案的加密與解密 846
實例580 文本檔案加密與解密 846
實例581 利用圖片加密檔案 849
實例582 對檔案進行加密保護 851
?實例583 使用口令加密執行檔 856
實例584 使用對稱算法加密解密檔案 860
第20章 資料庫安全技術 863
(本章內容在配書光碟中)
20.1 連線加密的資料庫 864
實例585 連線加密的Access資料庫 864
實例586 連線加密的Excel檔案 865
?實例587 訪問帶驗證模式的SQL Server資料庫 866
20.2 資料庫安全在實際中的套用 868
實例588 編程修復Access資料庫 868
實例589 Access資料庫備份與恢復 869
?實例590 加密資料庫中的數據 871
實例591 加密DataSet數據集 873
?實例592 防止SQL注入式攻擊 875
第21章 軟體安全控制 877
(本章內容在配書光碟中)
21.1 軟體的註冊 878
實例593 利用INI檔案對軟體進行註冊 878
?實例594 利用註冊表設計軟體註冊程式 880
實例595 利用網卡序列號設計軟體註冊程式 882
?實例596 根據CPU序列號和磁碟卷標製作
軟體註冊機 884
21.2 軟體的加密 886
實例597 製作一個EXE檔案加密器 886
?實例598 限制軟體的使用次數 890
實例599 使用強名稱標識軟體 892
實例600 軟體加殼常用工具及使用 893