当前位置: 代码迷 >> Windows Mobile >> RDA屡次失败!快疯了!有大侠救救小弟我吗?
  详细解决方案

RDA屡次失败!快疯了!有大侠救救小弟我吗?

热度:81   发布时间:2016-04-25 07:53:47.0
RDA屡次失败!!!!!快疯了!!!有大侠救救我吗????????????????????????????????
我最近做一个C/S模式的Pocket   PC应用程序,用RDA把SQL   Server2000上的数据库(名为pacs,内有patient和report两个表)数据拉到本地数据库(名为PocketPACS.sdf)上,IIS的虚拟目录sqlce的权限是”Anonymous   access”,   并且我在IE和Pocket   IE里输入“http://127.0.0.1:56/sqlce/sscesa20.dll”(我在IIS里发现默认站点停止了,必须把原来的80端口改掉才能重新启动,于是我把端口改成了56),都能成功显示”SQL   Server   CE   Server   Agent”.
      我的SQL   Server2000(SP3版)、SQL   Server   CE2.0(SP3版)、VS2005都装在了一台机子上,其中我的机子操作系统是XP,所以SQL用的个人版.
      代码如下:
public   string   strDBFile   =   @ "My   Documents\PocketPACS.sdf ";
public   string   strConnLocal   =   "Data   Source= "   +   @ "My   Documents\PocketPACS.sdf ";
public   string   strConnRemote   =   "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Integrated   Security=SSPI;User   ID   =   WWS//IUSR_WWS;Initial   Catalog=pacs;Data   Source=PocketPACS.sdf; ";
public   string   strURL   =   "http://127.0.0.1:56/sqlce/sscesa20.dll ";


private   void   menuLogin_Click_1(object   sender,   System.EventArgs   e)
{
doctorsearch   =   new   DoctorSearch();
if((textBox1.Text== "tsmc ")&&(textBox2.Text== "tsmc "))
{
doctorsearch.Show();
Cursor.Current   =   Cursors.WaitCursor;
if(File.Exists(strDBFile))
{
File.Delete(strDBFile);
}
SqlCeEngine   dbEngine   =   new   SqlCeEngine();
dbEngine.LocalConnectionString   =   strConnLocal;
try
{
dbEngine.CreateDatabase();
}
catch(SqlCeException   exSQL)
{
MessageBox.Show( "Unable   to   create   database "   +   exSQL.Errors[0].Message);
}
SqlCeRemoteDataAccess   rdaNW   =   new   SqlCeRemoteDataAccess();
try
{
        rdaNW.LocalConnectionString   =   strConnLocal;
rdaNW.InternetUrl   =   strURL;
rdaNW.InternetLogin   =   " ";
rdaNW.InternetProxyPassword   =   " ";
rdaNW.Pull( "patient ", "SELECT   *   FROM   patient ",strConnRemote,RdaTrackOption.TrackingOnWithIndexes, "ErrorDoctor ";
}
catch(SqlCeException   exSQL)
{
Errors.ShowErrors(exSQL);
}
finally
{
rdaNW.Dispose();
}
Cursor.Current   =   Cursors.Default;
}
else
        MessageBox.Show( "Wrong   infromation.Please   check   it   again ");
}
但运行之后出现以下两个错误:
Error   Code:   80004005
Message:   An   internal   error   occurred.[ID,,,,,]
Minor   Err:28574
Source:   Microsoft   SQL   Server   2000   Windows   CE   Edition

Error   Code:80004005
Message:[DBNETLIB][Connection   Open(connect())]SQL   Server不存在或拒绝访问
Minor   Err:   17
Source:   Microsoft   OLEDB   Provider   for   SQL   Server
第一个错误在网上查了半天没有什么收获,于是决定从第二个错误入手,下面是我的尝试和结果:
ping   169.254.8.169     成功
ping   wws                         成功
ping   127.0.0.1             成功
telnet   169.254.8.169   1433     不能打开到主机的连接,在端口1433:连接失败
telnet   169.254.8.169         不能打开到主机的连接,在端口23:连接失败
  相关解决方案