网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > 其他类别 > 正文

基于.NET平台手机短信聊天程序的设计与实现

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/06

【编者按】网学网其他类别频道为大家收集整理了“基于.NET平台手机短信聊天程序的设计与实现“提供大家参考,希望对大家有所帮助!

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名: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
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

原创论文

设为首页 | 加入收藏 | 论文首页 |原创论文 |
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师