我们公司正在开发PDA应用程序,不过访问数据库都是利用.SDF文件访问的,
现在想直接访问PC机中的数据库,哪位高手知道怎么访问?谢谢!

解决方案 »

  1.   

    可以通过浏览器的方式来连接PC WEB服务器,然后再通过WEB服务器去访问数据库服务器,直接连接的方式倒没试过.
      

  2.   

    提供一个思路参考一下,也不知道管用不管用。PC机上写一个程序,让它实现PPC和PC 的通信管道,然后PPC要访问数据库的 时候,让PC这里的程序先接收管道里来的命令和数据,再去操作数据库,然后返回的结果在传给PPC。直接访问的话,我不知道有什么办法。楼主也可以到MSDN上看看。这个地址是介绍 .NET CF 的,楼主也可以去看一看。http://samples.gotdotnet.com/quickstart/CompactFramework/doc/listviewsort.aspx
      

  3.   

    我也在做这个东西,我是先将数据存放到了PDA上的SQL CE中,现在要将PDA上的数据放到PC中的SQL2000中去就不知道怎么办了,哪个高手能帮忙说个解决的办法啊?
      

  4.   

    能不能加MSN:[email protected],我自己正在研究这个东东,刚接触这方面的,希望交流下
      

  5.   

    SqlCeReplication oRpl = null;try
    {
    Cursor.Current = Cursors.WaitCursor;//获取或设置代表鼠标光标的光标对象  把鼠标设置为等待状态(WaitCursor)
    //Hide隐藏光标。Show显示光标
    btnSynchronize.Enabled = false; //Set up the Replication properties 
    oRpl = new SqlCeReplication();
    oRpl.Publisher = "YCF";//指定发行者的名称。发行者是发布所在的、运行着 SQL Server 的计算机
    oRpl.PublisherLogin = "administrator";//指定连接到发行者时使用的登录名
    oRpl.PublisherPassword = "ycf"; //指定连接到发行者时使用的登录密码



    oRpl.InternetUrl = "http://lancelot/sqlce/sscesa20.dll";//指定用于连接 SQL Server CE Server Agent 的 URL
    //此属性是必需的。如果希望重写默认端口,可包含一个端口号。(默认 http 端口为 80,默认 https 端口为 443。
    //例如,在 IIS 服务器上使用端口 810 时,可将 InternetUrl 设置为“http://yourserver:810/ssce/sscesa20.dll”。
    oRpl.InternetLogin = "sa";
    oRpl.InternetPassword = "jinbar";
    oRpl.Subscriber = "CESubscriberTest";//指定订户的名称
    oRpl.Publication = "NorthwindPub";//指定已为匿名合并订阅启用的发布的名称
    oRpl.PublisherDatabase = "lcdata";//指定发布数据库的名称
    oRpl.SubscriberConnectionString = "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=" + this.m_sDataSource;
    //repl.SubscriberConnectionString = "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;Data Source=\\ssce.sdf";//指定用于基于 Windows CE .NET 的设备上的 SQL Server CE 数据库的 OLE DB 连接字符串
    DialogResult oResponse = DialogResult.Yes; //If the file doesn't exist, create it and add it as a subscription.
    while (System.IO.File.Exists(this.m_sDataSource) == false)//检查数据库是否存在.不存在新建
    {
    string sMsg = "The database file " + this.m_sDataSource + " does not exist, do you want to create it?";
    oResponse = MessageBox.Show(sMsg, "Create DB", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
    if(oResponse == DialogResult.Yes)
    {
    oRpl.AddSubscription(AddOption.CreateDatabase);
    this.Refresh();
    }
    else
    {
    break;
    }
    } if (oResponse == DialogResult.Yes)
    {
    // Perform the synchronization and load the data
    oRpl.Synchronize();///////////在 SQL Server CE 订阅和 SQL Server 发行者之间调用合并复制
    LoadData(false);//////
    // 若要指定代理计算机的名称(或 IP 地址)及端口号,请使用“ProxyServerName:Port”这一格式。
    //
    //如果在桌面上正确配置了用于串行、USB、或 IR 同步的 SQL Server CE Relay,必须将 InternetProxyServer 属性设置为“ppp_peer:nn”,其中“nn”是指定的客户机端口号。
    //
    //如果没有设置 InternetProxyServer 属性或该属性为空,则不使用任何代理服务器。
    //
    //有关 SQL Server CE Relay 的信息,请参见“SQL Server CE 联机图书”中的“使用 SQL Server CE Relay”这一主题。
    //Display results of the synchronization
    string sSynchMsg = "Synchronization Complete: " +  
    "\nPublisher changes = " + oRpl.PublisherChanges.ToString() + //指定上次调用 Synchronize 方法时在订户方应用的发行者的更改的总数
    "\nPublisher conflicts = " + oRpl.PublisherConflicts.ToString() + //指定上次调用 Synchronize 方法时在发行者中发生的冲突的总数
    "\nSubscriber changes = " + oRpl.SubscriberChanges.ToString();
    MessageBox.Show(sSynchMsg);
    }
    }
    catch(SqlCeException exSql)
    {
    ShowSqlCeErrors(exSql);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message);
    }
    finally
    {
    oRpl.Dispose();
    btnSynchronize.Enabled = true;
    Cursor.Current = Cursors.Default;//把鼠标状态显示正常
    }
      

  6.   

    谢谢大家的帮忙,我现在遇到的问题是,我在计算机上安装SQL CE 的时候总是提示sqlce20sql2ksp1和sqlce20sql2ksp2错误?有没有哪位能说说为什么啊??
      

  7.   

    通过数据库的发布,,,,然后再通过IIS
       你先安装SQL CE   然后有详细说明,,,,
      

  8.   

    ppc上安装sql ce 2.0,,pc上安装sql server  ,数据可以用两种方式进行同步  RDA 和 文件复制吧记得不是很清楚,使用起来非常方便