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