亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Access > 正文

詳解Silverlight與Access互操作的具體實現

2020-03-24 17:49:40
字體:
來源:轉載
供稿:網友
Silverlight與Access互操作是一個很基礎的問題,主要涉及到數據庫的操作。Access屬于輕量級的數據庫,應用起來還是比較方便的。51CTO編輯推薦《走向銀光 —— 一步一步學Silverlight》 在開發一些小型html' target='_blank'>應用程序時,我們就需要使用一些小巧的輕量級的數據庫,比如Access數據庫。由于Visual Studio中并沒有直接提供Silverlight與Access互操作的系列方法。于是本文就將為大家介紹如何讓Silverlight使用Access作為后臺數據庫。準備工作1)建立起測試項目細節詳情請見強大的DataGrid組件[2]_數據交互之ADO.NET Entity Framework——Silverlight學習筆記[10]。2)創建測試用數據庫如下圖所示,創建一個名為Employees.mdb的Access數據庫,建立數據表名稱為Employee。將該數據庫置于作為服務端的項目文件夾下的App_Data文件夾中,便于操作管理。
建立數據模型EmployeeModel.cs文件(放置在服務端項目文件夾下)usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; namespacedatagridnaccessdb { publicclassEmployeeModel { publicintEmployeeID{get;set;} publicstringEmployeeName{get;set;} publicintEmployeeAge{get;set;} } }建立服務端Web Service★右擊服務端項目文件夾,選擇Add- New Item....,按下圖所示建立一個名為EmployeesInfoWebService.asmx的Web Service,作為Silverlight與Access數據庫互操作的橋梁。創建完畢后,雙擊EmployeesInfoWebService.asmx打開該文件。將里面的內容修改如下:usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Web; usingSystem.Web.Services; usingSystem.Data.OleDb;//引入該命名空間為了操作Access數據庫 usingSystem.Data; namespacedatagridnaccessdb { /// summary ///SummarydescriptionforEmployeesInfoWebService /// /summary [WebService(Namespace="http://tempuri.org/")] [WebServiceBinding(ConformsTo=WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] //ToallowthisWebServicetobecalledfromscript,usingASP.NETAJAX,uncommentthefollowingline. //[System.Web.Script.Services.ScriptService] publicclassEmployeesInfoWebService:System.Web.Services.WebService { [WebMethod]//獲取雇員信息 publicList EmployeeModel GetEmployeesInfo() { List EmployeeModel returnedValue=newList EmployeeModel (); OleDbCommandCmd=newOleDbCommand(); SQLExcute("SELECT*FROMEmployee",Cmd); OleDbDataAdapterEmployeeAdapter=newOleDbDataAdapter(); EmployeeAdapter.SelectCommand=Cmd; DataSetEmployeeDataSet=newDataSet(); EmployeeAdapter.Fill(EmployeeDataSet); foreach(DataRowdrinEmployeeDataSet.Tables[0].Rows) { EmployeeModeltmp=newEmployeeModel(); tmp.EmployeeID=Convert.ToInt32(dr[0]); tmp.EmployeeName=Convert.ToString(dr[1]); tmp.EmployeeAge=Convert.ToInt32(dr[2]); returnedValue.Add(tmp); } returnreturnedValue; } [WebMethod]//添加雇員信息 publicvoidInsert(List EmployeeModel employee) { employee.ForEach(x= { stringCmdText="INSERTINTOEmployee(EmployeeName,EmployeeAge)VALUES('"+x.EmployeeName+"',"+x.EmployeeAge.ToString()+")"; SQLExcute(CmdText); }); } [WebMethod]//更新雇員信息 publicvoidUpdate(List EmployeeModel employee) { employee.ForEach(x= { stringCmdText="UPDATEEmployeeSETEmployeeName='"+x.EmployeeName+"',EmployeeAge="+x.EmployeeAge.ToString(); CmdText+="WHEREEmployeeID="+x.EmployeeID.ToString(); SQLExcute(CmdText); }); } [WebMethod]//刪除雇員信息 publicvoidDelete(List EmployeeModel employee) { employee.ForEach(x= { stringCmdText="DELETEFROMEmployeeWHEREEmployeeID="+x.EmployeeID.ToString(); SQLExcute(CmdText); }); } //執行SQL命令文本,重載1 privatevoidSQLExcute(stringSQLCmd) { stringConnectionString="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATASOURCE="+Server.MapPath(@"App_Data/Employees.mdb;"); OleDbConnectionConn=newOleDbConnection(ConnectionString); Conn.Open(); OleDbCommandCmd=newOleDbCommand(); Cmd.Connection=Conn; Cmd.CommandTimeout=15; Cmd.CommandType=CommandType.Text; Cmd.CommandText=SQLCmd; Cmd.ExecuteNonQuery(); Conn.Close(); } //執行SQL命令文本,重載2 privatevoidSQLExcute(stringSQLCmd,OleDbCommandCmd) { stringConnectionString="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATASOURCE="+Server.MapPath(@"App_Data/Employees.mdb;"); OleDbConnectionConn=newOleDbConnection(ConnectionString); Conn.Open(); Cmd.Connection=Conn; Cmd.CommandTimeout=15; Cmd.CommandType=CommandType.Text; Cmd.CommandText=SQLCmd; Cmd.ExecuteNonQuery(); } } }之后,在Silverlight客戶端應用程序文件夾下,右擊References文件夾,選擇菜單選項Add Service Reference...。如下圖所示,引入剛才我們創建的Web Service(別忘了按Discover按鈕進行查找)。創建Silverlight客戶端應用程序MainPage.xaml文件 UserControlxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"xmlns:dataFormToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit"x: d:DesignWidth="320"d:DesignHeight="240" Gridx:Name="LayoutRoot"Width="320"Height="240"Background="White" dataFormToolkit:DataFormx:Name="dfEmployee"Margin="8,8,8,42"/ Buttonx:Name="btnGetData"Height="30"Margin="143,0,100,8"VerticalAlignment="Bottom"Content="GetData"Width="77"/ Buttonx:Name="btnSaveAll"Height="30"Margin="0,0,8,8"VerticalAlignment="Bottom"Content="SaveAll"HorizontalAlignment="Right"Width="77"/ TextBlockx:Name="tbResult"Height="30"HorizontalAlignment="Left"Margin="8,0,0,8"VerticalAlignment="Bottom"Width="122"TextWrapping="Wrap"FontSize="16"/ /Grid /UserControl MainPage.xaml.cs文件 usingSystem; usingSystem.Collections.Generic; usingSystem.Collections.ObjectModel; usingSystem.Linq; usingSystem.Net; usingSystem.Windows; usingSystem.Windows.Controls; usingSystem.Windows.Documents; usingSystem.Windows.Input; usingSystem.Windows.Media; usingSystem.Windows.Media.Animation; usingSystem.Windows.Shapes; usingSystem.Xml; usingSystem.Xml.Linq; usingSystem.Windows.Browser; usingSilverlightClient.EmployeesInfoServiceReference; namespaceSilverlightClient { publicpartialclassMainPage:UserControl { intoriginalNum;//記錄初始時的Employee表中的數據總數 ObservableCollection EmployeeModel deletedID=newObservableCollection EmployeeModel ();//標記被刪除的對象 publicMainPage() { InitializeComponent(); this.Loaded+=newRoutedEventHandler(MainPage_Loaded); this.btnGetData.Click+=newRoutedEventHandler(btnGetData_Click); this.btnSaveAll.Click+=newRoutedEventHandler(btnSaveAll_Click); this.dfEmployee.DeletingItem+=newEventHandler System.ComponentModel.CancelEventArgs (dfEmployee_DeletingItem); } voiddfEmployee_DeletingItem(objectsender,System.ComponentModel.CancelEventArgse) { deletedID.Add(dfEmployee.CurrentItemasEmployeeModel);//正在刪除時,將被刪除對象進行標記,以便傳給服務端真正刪除。 } voidbtnSaveAll_Click(objectsender,RoutedEventArgse) { List EmployeeModel updateValues=dfEmployee.ItemsSource.Cast EmployeeModel ().ToList(); ObservableCollection EmployeeModel returnValues=newObservableCollection EmployeeModel (); if(updateValues.Count originalNum) { //添加數據 for(inti=originalNum;i =updateValues.Count-1;i++) { returnValues.Add(updateValues.ToArray()[i]); } EmployeesInfoWebServiceSoapClientwebClient=newEmployeesInfoWebServiceSoapClient(); webClient.InsertCompleted+=newEventHandler System.ComponentModel.AsyncCompletedEventArgs (webClient_InsertCompleted); webClient.InsertAsync(returnValues); //必須考慮數據集中既有添加又有更新的情況 returnValues.Clear(); updateValues.ForEach(x= returnValues.Add(x)); webClient.UpdateCompleted+=newEventHandler System.ComponentModel.AsyncCompletedEventArgs (webClient_UpdateCompleted); webClient.UpdateAsync(returnValues); } elseif(updateValues.Count originalNum) { //刪除數據 EmployeesInfoWebServiceSoapClientwebClient=newEmployeesInfoWebServiceSoapClient(); webClient.DeleteCompleted+=newEventHandler System.ComponentModel.AsyncCompletedEventArgs (webClient_DeleteCompleted); webClient.DeleteAsync(deletedID); } else { //更新數據 updateValues.ForEach(x= returnValues.Add(x)); EmployeesInfoWebServiceSoapClientwebClient=newEmployeesInfoWebServiceSoapClient(); webClient.UpdateCompleted+=newEventHandler System.ComponentModel.AsyncCompletedEventArgs (webClient_UpdateCompleted); webClient.UpdateAsync(returnValues); } } voidwebClient_UpdateCompleted(objectsender,System.ComponentModel.AsyncCompletedEventArgse) { tbResult.Text="更新成功!"; } voidwebClient_DeleteCompleted(objectsender,System.ComponentModel.AsyncCompletedEventArgse) { tbResult.Text="刪除成功!"; } voidwebClient_InsertCompleted(objectsender,System.ComponentModel.AsyncCompletedEventArgse) { tbResult.Text="添加成功!"; } voidbtnGetData_Click(objectsender,RoutedEventArgse) { GetEmployees(); } voidMainPage_Loaded(objectsender,RoutedEventArgse) { GetEmployees(); } voidGetEmployees() { EmployeesInfoWebServiceSoapClientwebClient=newEmployeesInfoWebServiceSoapClient(); webClient.GetEmployeesInfoCompleted+= newEventHandler GetEmployeesInfoCompletedEventArgs (webClient_GetEmployeesInfoCompleted); webClient.GetEmployeesInfoAsync(); } voidwebClient_GetEmployeesInfoCompleted(objectsender,GetEmployeesInfoCompletedEventArgse) { originalNum=e.Result.Count;//記錄原始數據個數 dfEmployee.ItemsSource=e.Result; } } }最終效果圖html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图校园春色| 亚洲激情电影中文字幕| 久久久97精品| 亚洲精品电影网| 欧美在线xxx| 国产香蕉精品视频一区二区三区| 久久99青青精品免费观看| 欧美黄色小视频| 国产免费久久av| 91精品视频一区| 国产精品网红直播| 亚洲视频网站在线观看| 欧美影院在线播放| 国外成人在线直播| 日韩av在线网址| 日韩二区三区在线| 亚洲第一免费播放区| 亚洲欧美日韩网| xxxx性欧美| 国产精品都在这里| 欧美成人性生活| 精品久久久久久中文字幕大豆网| 欧美日韩在线观看视频小说| 亚洲人成电影网站色xx| 亚洲一区二区三区乱码aⅴ| 中文字幕日韩欧美精品在线观看| 国产91久久婷婷一区二区| 久久久久久久久久国产精品| 亚洲欧美日韩精品久久奇米色影视| 美女久久久久久久| 色哟哟网站入口亚洲精品| 欧美www在线| 97国产精品人人爽人人做| 久久久久女教师免费一区| 亚洲国产成人精品久久久国产成人一区| 日韩**中文字幕毛片| 亚洲色图狂野欧美| 久久久女女女女999久久| 91久久国产精品91久久性色| 91精品国产色综合久久不卡98| 欧美成人免费大片| 亚洲精品资源在线| 日本精品视频在线播放| 国产精品久久色| 亚洲综合精品一区二区| 中文字幕国产精品久久| 久久99国产精品久久久久久久久| 欧美精品激情视频| 欧美黑人狂野猛交老妇| 色七七影院综合| 国产成人一区二区三区电影| 精品女同一区二区三区在线播放| 国产91久久婷婷一区二区| 亚洲va久久久噜噜噜久久天堂| 国产美女搞久久| 国产欧美久久一区二区| 色综合色综合久久综合频道88| 久久精品久久久久久| 俺也去精品视频在线观看| 在线观看不卡av| 亚洲午夜久久久久久久| 日韩av电影院| 91精品国产91| 日韩一区二区福利| 久久久久免费视频| 国产v综合ⅴ日韩v欧美大片| 久久中文字幕视频| 亚洲欧美在线看| 国产精品香蕉在线观看| 亚洲一区二区久久久久久| 91综合免费在线| 91亚洲精品视频| 高清欧美性猛交xxxx黑人猛交| 成人做爽爽免费视频| 久久中文精品视频| 亚洲欧美国产日韩天堂区| 欧美日韩国产成人在线| 尤物yw午夜国产精品视频| 精品国产91乱高清在线观看| 亚洲精品综合久久中文字幕| 一区二区三区精品99久久| 亚洲的天堂在线中文字幕| 国产精品自产拍在线观看中文| 亚洲精品国产精品自产a区红杏吧| 国产精品jizz在线观看麻豆| 九九视频这里只有精品| 欧美另类极品videosbestfree| 亚洲欧美日本另类| 色婷婷久久av| 97视频在线观看网址| 成人有码在线视频| 国产精品h片在线播放| 日韩在线精品视频| 久久精品国产96久久久香蕉| 国产亚洲欧洲黄色| 色综合久久久久久中文网| 91色在线视频| 色偷偷888欧美精品久久久| 亚洲欧美另类在线观看| 亚洲欧洲午夜一线一品| 精品国产视频在线| 欧美另类精品xxxx孕妇| 久久6免费高清热精品| 国产精品一区二区久久| 精品国内产的精品视频在线观看| 69av在线播放| 日韩免费av一区二区| 亚洲自拍小视频| 成人欧美一区二区三区黑人孕妇| 疯狂做受xxxx高潮欧美日本| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲一区二区免费| 亚洲欧美在线磁力| 久久91亚洲精品中文字幕| 色先锋资源久久综合5566| 伊人亚洲福利一区二区三区| 亚州欧美日韩中文视频| 日本19禁啪啪免费观看www| 亲爱的老师9免费观看全集电视剧| 国产成人精品综合| 亚洲国产天堂久久综合| 欧美性极品xxxx娇小| 91精品啪在线观看麻豆免费| 欧美视频精品一区| 欧美电影在线观看高清| 日韩av大片在线| 亚洲福利在线观看| 一本一本久久a久久精品牛牛影视| 4388成人网| 国产日韩在线播放| 久久在线视频在线| 国产精选久久久久久| 懂色av中文一区二区三区天美| 欧美日韩黄色大片| 2019最新中文字幕| 日韩成人av在线播放| 国产精品一区二区久久国产| 国产精品高潮呻吟久久av无限| 亚洲自拍偷拍第一页| 在线观看欧美日韩国产| 91久久国产婷婷一区二区| 深夜精品寂寞黄网站在线观看| 538国产精品一区二区免费视频| 久久在线免费观看视频| 亚洲成人性视频| 欧美日韩国产黄| 欧美成人精品不卡视频在线观看| 亚洲精品suv精品一区二区| 久久综合88中文色鬼| 欧美与欧洲交xxxx免费观看| 97在线日本国产| 日本sm极度另类视频| 91久久精品国产| 国产精品日韩专区| 久久精品一区中文字幕| 日韩在线观看免费全| 成人免费淫片视频软件| 精品少妇一区二区30p| 国产视频精品va久久久久久| 中文字幕亚洲图片| 欧美视频免费在线观看| 热99久久精品| 午夜精品久久久久久久久久久久久| 26uuu另类亚洲欧美日本一|