【编者按】网学网其他类别频道为大家收集整理了“基于.NET平台手机短信聊天程序的设计与实现“提供大家参考,希望对大家有所帮助!
客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn |
1.1 系统设计代码 1.1.1 本地数据库访问 本地数据访问如图4-1所示 通过对本地数据库的访问可以知道本地数据库上保存的相关信息。可以通过SQL Server CE 2.0的查询分析器ISQLW查询信息,如图5所示 图5 ISQLW查询分析器 本地数据库访问界面,如图6所示 图6发送和接收过程界面 通过向数据表中插入数据的公共过程可更改数据库中的数据: ''向数据表插入数据的公共过程 Public Sub runNonQuery(ByVal sqlcommandtext As String, ByVal localDatasource As String) Dim localConnection As Data.SqlServerCe.SqlCeConnection localConnection = New Data.SqlServerCe.SqlCeConnection(localDatasource) Dim cmdCreateTable As Data.SqlServerCe.SqlCeCommand localConnection.Open() cmdCreateTable = New Data.SqlServerCe.SqlCeCommand(sqlcommandtext, localConnection) cmdCreateTable.CommandType = CommandType.Text cmdCreateTable.ExecuteNonQuery() localConnection.Close() cmdCreateTable.Dispose() localConnection.Dispose() End Sub 该段代码实现当数据差入后使用DataReader和DataSet 进行读取数据库数据: ''使用DataReader访问数据 Public Function Getdata(ByVal localDataSource As String) As Data.SqlServerCe.SqlCeDataReader Try Dim localConnection As Data.SqlServerCe.SqlCeConnection localConnection = New Data.SqlServerCe.SqlCeConnection(localDataSource) ''获取数据 Dim dr As Data.SqlServerCe.SqlCeDataReader Dim cmdGetdata As Data.SqlServerCe.SqlCeCommand localConnection.Open() cmdGetdata = New Data.SqlServerCe.SqlCeCommand("SELECT * FROM PPC1", localConnection) cmdGetdata.CommandType = CommandType.Text dr = cmdGetdata.ExecuteReader(Data.CommandBehavior.CloseConnection) Return dr Catch ex As Data.SqlServerCe.SqlCeException MessageBox.Show(ex.Message) End Try End Function ''使用DataSet访问数据 Public Function GetDataSet(ByVal localDatasource As String) As Data.DataSet Try Dim localConnection As Data.SqlServerCe.SqlCeConnection localConnection = New Data.SqlServerCe.SqlCeConnection(localDatasource) ''获取数据 Dim da As Data.SqlServerCe.SqlCeDataAdapter = New Data.SqlServerCe.SqlCeDataAdapter Dim ds As Data.DataSet = New Data.DataSet da.SelectCommand = New Data.SqlServerCe.SqlCeCommand("SELECT *FROM PPC1", localConnection) da.Fill(ds) Return ds Catch ex As Data.SqlServerCe.SqlCeException MessageBox.Show(ex.Message) End Try End Function 设计控件代码的过程包含了在.NET控件栏中拖入设计窗体控件,在后台写入控件触发事件代码,如图7所示: 图7界面控件设计 界面控件按钮功能实现代码: Private Sub btOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btOK.Click Dim slocalDatabaseName As String Dim AppPath As String Dim boolCreateNewDatabase As Boolean = True AppPath = System.IO.Path.GetDirectoryName(Reflection.Assembly. _ GetExecutingAssembly().GetName.CodeBase.ToString()) slocalDatabaseName = AppPath & "\AccessMsg.sdf" If System.IO.File.Exists(slocalDatabaseName) Then boolCreateNewDatabase = False End If Dim conNwindCE As Data.SqlServerCe.SqlCeConnection = New Data.SqlServerCe.SqlCeConnection("Data source =" & slocalDatabaseName) Dim Name As String = Me.txtName.Text Dim Number As String = Me.txtNum.Text conNwindCE.Open() Dim cmdData As Data.SqlServerCe.SqlCeCommand = New Data.SqlServerCe.SqlCeCommand("INSERT INTO Aceepter (ID,Name,Type) VALUES(''" & Name & "'',''" & Number & "'','''')", conNwindCE) cmdData.CommandType = Data.CommandType.Text cmdData.ExecuteNonQuery() conNwindCE.Close() LoadData() End If 1.1.2 远程数据访问 RDA为基于.NET Compact Framework的Pocket PC 应用程序提供了与远程SQL Server数据库实例进行数据同步的简单方法。RDA适用于简单的,不需要全功能的合并复制功能的数据同步,使用RDA不需要配置SQL Server 的复制器和发布器。 使用RDA技术中的PULL操作向远程数据库中的服务器接收数据。在Pocket PC中完成对信息接收的操作: Public Class RDA Public Shared Sub pull() Dim _strRemoteConnect As String _strRemoteConnect = " provider = sqloledb;data source =.;Initial Catalog = MsgInfo;Integrated Security=SSPI;" Dim AppPath As String Dim _strLocalConnect As String AppPath = System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString()) _strLocalConnect = "data source=" & AppPath & "\AccessMsg.sdf" Const _strInternetURL As String = "http://127.0.0.1/sqlce/sscesa20.dll" Try Dim RDA As Data.SqlServerCe.SqlCeRemoteDataAccess = New Data.SqlServerCe.SqlCeRemoteDataAccess() RDA.InternetLogin = String.Empty RDA.InternetPassword = String.Empty RDA.InternetUrl = _strInternetURL RDA.LocalConnectionString = _strLocalConnect RDA.Pull("localMsgInfo", "Select * from MsgInfo", _strRemoteConnect, System.Data.SqlServerCe.RdaTrackOption.TrackingOnWithIndexes) Catch ex As Data.SqlServerCe.SqlCeException MessageBox.Show(ex.Message) End Try End Sub 使用RDA技术中的PUSH操作向远程数据库中的服务器发送数据。在Pocket PC中完成对信息发送的操作: Public Shared Sub push() Dim _strRemoteConnect As String _strRemoteConnect = " provider = sqloledb;data source =.;Initial Catalog = MsgInfo1;" Dim AppPath As String Dim _strLocalConnect As String AppPath = System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase.ToString()) _strLocalConnect = "data source=" & AppPath & "\AccessMsg.sdf" Const _strInternetURL As String = "http://127.0.0.1/sqlce/sscesa20.dll" Dim RDA As Data.SqlServerCe.SqlCeRemoteDataAccess = New Data.SqlServerCe.SqlCeRemoteDataAccess() Try With RDA .InternetLogin = String.Empty .InternetPassword = String.Empty .InternetUrl = _strInternetURL .LocalConnectionString = _strLocalConnect .Push("localMsgInfo1", _strRemoteConnect, System.Data.SqlServerCe.RdaBatchOption.BatchingOn) End With 1 测试和结果 1.1 测试 在系统搭建起后通过使用部署Pocket PC 2003模拟器进行测试,首先从Visual Studio.NET菜单栏的“调试”来进行调试,运行代码调试无误,在部署对话框中选择Pocket PC 2003 SE仿真模拟器,单击“部署”按钮,系统加载Pocket PC 2003模拟器,并在模拟器上运行SQLCECF应用程序,当测试环境报错,则开发者一定要注意查看报错代码和报错的信息,以便准确诊断出错的原因,然后根据错误类型重新配置IIS服务,SQL Server 2000数据库发布或修改SQL Server CE上AccessMsg.sdf的源程序。 部署成功后Pocket PC 2003模拟器上可以输入相应的内容:用户名,信息和用户号码来模拟手机的功能。在模拟器中还有个很重要的步骤:在模拟器中确定SQLCE本地数据库是否建成,因为SQLCE数据库的实现不能通过控制台建立,这是它与SQL Server 2000的一大区,这一点可以通过SQL Server CE 2.0的查询分析器ISQLW查询信息,SQLCE数据库可以通过在Visual Studio.NET里通过代码来实现。在模拟器中找到路径就能连接上本地数据库,通过PPC显示屏能查看本地数据库。 1.2 结果 本文主要基于Pocket PC上开发的信息通信系统。并基本实现了框架下的相关功能,对本地数据库和远程数据库的操作。 部署完成后可以进行系统功能的实现,发送方通过向Pocket PC添加信息,模拟手机上写入信息的功能,再通过相应的按钮把信息发送到远程数据库中,这个操作是与RDA技术中PUSH操作相联系。当发送完成后接收方通过按钮操作可从远程数据库中把信息接收到本地数据库中,并通过Pocket PC显示出来,从而完成信息的发送和操作。同样的可以通过PULL操作完成从数据库中接收数据。该设计无论是向本地数据库还是远程数据库发送数据或者接收收据,都能通过SQL查询语句向数据库查询信息。在实现这一传输过程上,只是考虑一种乐观的操作,不考虑任何系统环境的冲突。如过系统环境存在冲性则需要采用合并复制的功能来达到数据传输的同步。 在系统完成后能够较为清晰的为用户反映出手机的通信原理,模拟器也能较为生动的展现手机短信息发送和接收的流程。Pocket PC设备的最大特性就是移动性和离线性。当在远程数据库和智能设备之间传递数据时,需要选择数据库间的迁移。 本系统还存在诸多的缺点有待改进,主要表现在以下几方面: 1. 不能实现多个Pocket PC之间信息的交流,只能做到一对一的通信方式,失去完全模拟真实手机工作的情景。 2. 数据库设计不够完善使系统缺少很多相应的功能,造成系统仅能完成单一数据间的传输。 3. 采取了乐观的传输技术,没有考虑系统环境冲突,使系统只能在乐观简单条件下实现其功能。 4. 整个系统开发的不够完善,不能完全独立形成一个实用系统。 以上不足之处是今后工作的重点。在今后的研究中将就上述的四个方面作深入的研究。 结 论 本系统设计从开始到现在,大约花了4个月。到目前为止基本功能已经实现。远程数据库采用SQL Server 2000,它功能强大,可操作性强,本地智能设备上采用的是Microsoft SQL Server 2000 Windows CE Edition(即SQL Server CE 2.0)通过对系统的开发更熟练的掌握了两种数据库的功能和特性,特别是SQL Server CE数据库的开发。 在开发该系统时,本人对智能设备项目和SQL Server CE数据库不熟悉,再加上毕业设计时间有限,所以走了一段弯路才找着实施方向,因此许多方面在下一步的工作中还需要进一步的完善。 1. 实现多台Pocket PC 2003 之间的相互访问。 2. 增加在Pocket PC 2003上的功能,使之完善成为一个小的系统功能。 |
本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT |
本文选自计算机毕业设计http://myeducs.cn |