時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
本文將重點講述Silverlight中連接MySQL數(shù)據(jù)庫實例,這在RIA開發(fā)中比較基礎(chǔ),但是也是比較重要的內(nèi)容。希望通過本文能讓大家對連接MySQL有更深刻的理解。
在銀光中國網(wǎng)(SilverlightChina.Net)有一篇"Silverlight與常用數(shù)據(jù)庫互操作系列"文章,其中介紹了使用Silverlight存取不同數(shù)據(jù)庫的方法和步驟。但是對于Silverlight存取MS SQL介紹的不夠全面,這里我想介紹Silverlight如何通過WCF訪問MSSQL數(shù)據(jù)庫存儲過程的。希望對大家能夠有所幫助。
我們要實現(xiàn), 用戶輸入用戶名和密碼后,點擊登錄按鈕,傳遞用戶名和密碼到服務(wù)器端, 通過WCF訪問MSSQL數(shù)據(jù)庫,調(diào)用存儲過程,在服務(wù)器端對用戶名和密碼進(jìn)行匹配,匹配成功,則返回登錄成功,否則,則是失敗。
在文章開始前,我們需要做一下準(zhǔn)備工作,
開發(fā)環(huán)境需求: VS2008 SP1, Silverlight 3 Develop Tools for VS2008 SP1, 客戶端Silverlight 3 Runtime, MSSQL 2005 SP3 ;
建立例程數(shù)據(jù)庫 SilverlightDemo,在數(shù)據(jù)庫中建立一個新表 Users,包含以下字段;
添加內(nèi)容到Users表,為了方便起見,密碼全部使用明文,在正式項目中,建議對密碼字段進(jìn)行加密使用。
這里,我們驗證用戶名和密碼,有兩種簡單方式,
一是使用存儲過程讀取用戶名和密碼,然后在服務(wù)器端進(jìn)行用戶名和密碼匹配校驗,如果查找到匹配數(shù)據(jù),則返回登錄成功,否則,則是登錄失??;
二是傳用戶名和密碼到存儲過程中,在數(shù)據(jù)庫存儲過程中進(jìn)行判斷,使用Select語句進(jìn)行查找,對應(yīng)用戶名和密碼,如果查找到匹配結(jié)果,則返回用戶ID,?服務(wù)器端接收到用戶ID,則返回登錄成功,否則,則是失?。?/p>
在本例中,主要是對Silverlight訪問數(shù)據(jù)庫進(jìn)行講述,所以,對于驗證方法,不進(jìn)行詳細(xì)描述和講解,如果有問題,可以留言給我,我們繼續(xù)討論,這里,我將使用第一種驗證方法。 為此,建立一個簡單的存儲過程:
- CREATE?PROCEDURE?[dbo].[Login] ?
- (?@UserName?Varchar(30)) ?
- ?AS????? ?
- ??Select?cUserName,?cPassword ?
- ??From?Users ?
- ??Where?cUserName?=?@UserName? ?
- ?????RETURN? ?
- SET?NOCOUNT?ON?
在完成上面的準(zhǔn)備工作后,開始建立新的Silverlight項目,
1. 建立一個新項目"SilverlightDBDemo",
2. 在MainPage中建立簡單的登錄界面,如下:
3. 在Web項目中添加新選項
4.?添加一個簡單的用戶信息類Users,作為WCF的契約成員,當(dāng)我們從數(shù)據(jù)庫中讀取信息后,將賦值給該類的契約成員,方便客戶端進(jìn)行調(diào)用;
VS2008將自動生成Users類代碼,在類命名前添加數(shù)據(jù)契約屬性[DataContract()]。 為了能夠使綁定數(shù)據(jù)返回修改通知,這里需要繼承INotifyPropertyChanged接口,該步驟不添加對本教程也沒有影響,為了以后例程代碼完整性,這里我繼承了該接口。在接口上點擊右鍵,生成代碼。
代碼如下:
- namespace?SilverlightDBDemo.Web ?
- ?{ ?
- ?????[DataContract()] ?
- ?????public?class?Users?:?INotifyPropertyChanged ?
- ?????{ ?
- ? ?
- ???#region?INotifyPropertyChanged?Members ?
- ? ?
- ???public?event?PropertyChangedEventHandler?PropertyChanged;? ?
- ??#endregion ?
- ????} ?
- }??
5. 在Users類中,添加契約成員
- private?string?userName; ?
- [DataMember()] ?
- ?public?string?UserName ?
- ?{ ?
- ?????get?{?return?userName;?} ?
- ?????set?{?userName?=?value;} ?
- ?} ?
- ?
- ?private?string?password; ?
- [DataMember()] ?
- public?string?Password ?
- { ?
- ????get?{?return?password;??} ?
- ????set?{?password?=?value;?} ?
- }?
6. 建立構(gòu)造函數(shù) public Users(string sUserName,string sPassword),傳遞用戶名和密碼給契約成員;
- using?System; ?
- using?System.ComponentModel; ?
- using?System.Runtime.Serialization; ?
- ?
- namespace?SilverlightDBDemo.Web ?
- { ?
- ????[DataContract()] ?
- ????public?class?Users?:?INotifyPropertyChanged ?
- ????{ ?
- ?private?string?userName; ?
- ?[DataMember()] ?
- ????&
關(guān)鍵詞標(biāo)簽:Silverlight,MySQL,數(shù)
相關(guān)閱讀
熱門文章 Xbox Game Pass 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL常用維護(hù)管理工具 MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié)
人氣排行 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫啟動失敗1067進(jìn)程意外終止的解決辦法總結(jié) Mysql 1045錯誤解決辦法 MySQL服務(wù)器進(jìn)程CPU占用100%解決辦法 MySQL導(dǎo)出導(dǎo)入命令的用例 MySQL連接字符串的實際操作步驟匯總 MySQL無法啟動、無法停止各種解決方法總結(jié) 三種常用的MySQL建表語句