请高手指教Pocket PC怎么访问PC中的数据库(C#) 我们公司正在开发PDA应用程序,不过访问数据库都是利用.SDF文件访问的,现在想直接访问PC机中的数据库,哪位高手知道怎么访问?谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以通过浏览器的方式来连接PC WEB服务器,然后再通过WEB服务器去访问数据库服务器,直接连接的方式倒没试过. 提供一个思路参考一下,也不知道管用不管用。PC机上写一个程序,让它实现PPC和PC 的通信管道,然后PPC要访问数据库的 时候,让PC这里的程序先接收管道里来的命令和数据,再去操作数据库,然后返回的结果在传给PPC。直接访问的话,我不知道有什么办法。楼主也可以到MSDN上看看。这个地址是介绍 .NET CF 的,楼主也可以去看一看。http://samples.gotdotnet.com/quickstart/CompactFramework/doc/listviewsort.aspx 我也在做这个东西,我是先将数据存放到了PDA上的SQL CE中,现在要将PDA上的数据放到PC中的SQL2000中去就不知道怎么办了,哪个高手能帮忙说个解决的办法啊? 能不能加MSN:[email protected],我自己正在研究这个东东,刚接触这方面的,希望交流下 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 dataoRpl.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 synchronizationstring 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;//把鼠标状态显示正常 } 谢谢大家的帮忙,我现在遇到的问题是,我在计算机上安装SQL CE 的时候总是提示sqlce20sql2ksp1和sqlce20sql2ksp2错误?有没有哪位能说说为什么啊?? 通过数据库的发布,,,,然后再通过IIS 你先安装SQL CE 然后有详细说明,,,, ppc上安装sql ce 2.0,,pc上安装sql server ,数据可以用两种方式进行同步 RDA 和 文件复制吧记得不是很清楚,使用起来非常方便 托管代码和非托管代码有什么区别? 如何遍历RichTextBox控件中的内容? C# 三维数组 C#修改注册表问题 DataView的问题,请路过的进来看看 数据库表结构设计?????? winform程序,我用process已打开IE,怎么设置这个IE窗口是一个新打开的窗口而不是替换了原先的! (高分在线等 问一个使用TcpClient通信的问题 新手求助 如何得到一台机器所在的工作组或者域名!~ 求C#编写的SQL数据备份和还原~~~~~~~~~~~~~~~~~ 超级难题,如何在C#中调用“net start SNMP”命令
{
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;//把鼠标状态显示正常
}
你先安装SQL CE 然后有详细说明,,,,