无线点菜
仿龙脉
截图:
PDF文件:毕业设计文件下载
源代码文件:代码下载
==========================================
安装步骤:
一、安装步骤
假设全部安装在同一台计算机上,将本光盘全部文件复制到目标计算机上
1、安装sql2000
2、进入目录“SQL服务器”,安装sp4
3、进入目录“SQL服务器”,还原数据库yunfei
4、进入目录“IIS服务器\Microsoft SQL Server 2005 Mobile Edition”,安装Sqlce30setupcn.msi
5、进入目录“IIS服务器\Microsoft SQL Server 2005 Mobile Edition”,安装sql2kcnsp4.msi
6、(确认所在计算机已经安装了IIS)将目录“IIS服务器\wwwroot”指定为IIS根目录
7、运行Microsoft SQL Server 2005 Mobile Edition的“配置 Web 同步向导”,
在出现的步骤中新建立虚拟目录sqlce,路径指定为“IIS服务器\wwwroot”,
客户端身份验证选择“以匿名方式”,
在“匿名访问”界面取消复选框的选择
8、进入目录“测试机器(虚拟PDA端)”,安装netsvwrap(Virtual PC Network Driver).msi
9、进入目录“测试机器(虚拟PDA端)”,安装Windows Mobile 5.0 Pocket PC SDK.msi
10、进入目录“测试机器(虚拟PDA端)”,安装Windows Mobile 5.0 Emulator Images for Pocket PC – CHS.msi
11、进入控制面板——添加硬件——添加新的硬件设备——“安装我手动从列表选择的硬件(高级)”——网络适配器——Microsoft Loopback
Adapter
二、演示步骤
(1)客户端
1、禁用除Microsoft Loopback Adapter的其他网络连接,为Microsoft Loopback Adapter连接配置IP
2、进入C:\Program Files\Microsoft Device Emulator\1.0, 运行dvcemumanager.exe,右键选择“Pocket PC 2003 SE仿真程序”——连接
3、为打开的“Pocket PC 2003 SE仿真程序”配置IP地址和代理服务器地址,IP地址应和本地计算机同一网段,代理服务器地址为本地计算机的IP
4、打开“Pocket PC 2003 SE仿真程序”的“文件——配置——网络”,选择“启用NE2000 PCMCIA网络适配器并绑定到”,确定。
5、打开“Pocket PC 2003 SE仿真程序”浏览器,在地址栏输入本地计算机的IP地址,若配置无误,则会出现一个HTML页面,按顺序安装。
6、打开“Pocket PC 2003 SE仿真程序”——程序——资源管理器——Program Files——yunfei——运行程序
SQL服务器名:当前SQLserver所运行的实例的名称
SQL代理地址:当前计算机的IP地址(即运行IIS服务的计算机地址)
默认用户名:haijun,密码:haijun
(2)管理端
进入目录“管理端”,安装,即可使用
首先配置网络,默认用户名:111,密码:111
========================================================================
基本代码:
using System;
using System.Text;
using System.IO;
using System.Data;
using System.Windows.Forms;
using System.Collections;
using System.Data.Common;
using System.Data.SqlServerCe;
using System.Data.SqlClient;
using System.Reflection;
namespace Yunfei_Client
{
public class SQLServerCEWrapper
{
public static string ceUser =null;// "haijun";
public static string SqlServer =null;// "HAIJUN";
public static string SqlAgent_ip = null;//192.168.0.254
public static string SqlAgent =null;
public static string RemoteConnection = "Provider=sqloledb;Data Source=" + SqlServer + ";Initial Catalog=yunfei;User ID=sa;Password=sa;";
public static string LocalDatabase = string.Format(@"{0}\yunfei.sdf", Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase));
public static string LocalConnection = string.Format(@"Data Source = {0}", LocalDatabase);
public SQLServerCEWrapper()
{
}
public bool CreateDatabase()
{
if (File.Exists(LocalDatabase))
{
File.Delete(LocalDatabase);
SqlCeEngine SQLCEEngine = new SqlCeEngine(LocalConnection);
SQLCEEngine.CreateDatabase();
SQLCEEngine.Dispose();
// MessageBox.Show("数据库创建成功!");
return true;
}
else
{
SqlCeEngine SQLCEEngine = new SqlCeEngine(LocalConnection);
SQLCEEngine.CreateDatabase();
SQLCEEngine.Dispose();
return true;
}
}
public void DeleteDatabase()
{
// Delete the local database!
// *****************************
try
{
if (File.Exists(LocalDatabase) == true)
{
File.Delete(LocalDatabase);
}
}
catch (SqlCeException ex)
{
ShowErrors(ex);
}
}
public void Pull(bool KeepLocalData, string TableName, string sqlSelectString)
{
// 将表请求下载到本地数据库中。
// *****************************
try
{
string SQL=null;
SqlCeConnection cn=null;
SqlCeCommand cmd=null;
SqlCeRemoteDataAccess RDA = null;
// 创建并启动新的 RDA 对象
RDA = new SqlCeRemoteDataAccess(SqlAgent, LocalConnection);
// 是否保留本地数据?如果要保留,请先强制上载这些数据!
if (KeepLocalData)
{
RDA.Push(TableName, RemoteConnection, RdaBatchOption.BatchingOff);
}
// 在 Pull 之前,必须先删除本地表
// 打开本地数据库连接
cn = new SqlCeConnection(LocalConnection);
cn.Open();
// 删除本地表
SQL = "DROP TABLE " + TableName;
cmd = new SqlCeCommand(SQL, cn);
// 如果该表不存在,则出错。
// 如果出错,可以置之不理。
try
{
cmd.ExecuteNonQuery();
}
catch
{
}
// 关闭连接
cmd.Dispose();
cn.Close();
cn.Dispose();
// 最后,请求下载远程表!
SQL = sqlSelectString;
RDA.Pull(TableName, SQL, RemoteConnection, RdaTrackOption.TrackingOnWithIndexes);
// 清理
SQL = null;
RDA.Dispose();
}
catch (SqlCeException ex)
{
ShowErrors(ex);
}
}
public void Push(string localTableName)
{
try
{
SqlCeRemoteDataAccess RDA = null;
// 创建并启动新的 RDA 对象
RDA = new SqlCeRemoteDataAccess(SqlAgent, LocalConnection);
RDA.Push(localTableName, RemoteConnection, RdaBatchOption.BatchingOff);
RDA.Dispose();
//MessageBox.Show("数据上传成功!");
}
catch (SqlCeException ex)
{
ShowErrors(ex);
}
}
public DataSet GetResult(string TableName, string sqlSelectString)
{
// 从本地数据库获取数据。作为 DataSet 返回。
// *****************************
//try
//{
string SQL=null;
SqlCeConnection cn=null;
SqlCeCommand cmd=null;
DataSet ds=null;
SqlCeDataAdapter da=null;
// 初始化新的连接
cn = new SqlCeConnection(LocalConnection);
// 打开连接
cn.Open();
// 生成 SQL
SQL = sqlSelectString;
// 初始化新的命令
cmd = new SqlCeCommand(SQL, cn);
// 初始化新的 DataSet
ds = new DataSet();
da = new SqlCeDataAdapter(SQL, cn);
// 通过适配器,使用数据来填充 DataSet
da.Fill(ds, TableName);
// 清理
da.Dispose();
cmd.Dispose();
cn.Close();
cn.Dispose();
SQL = null;
// 返回 DataSet
return ds;
//}
//catch (SqlCeException ex)
//{
// ShowErrors(ex);
//}
}
public int CountResult(string sqlCountString)
{
// Count the result.
// *****************************
//try
//{
int Count = 0;
string SQL=null;
SqlCeConnection cn=null;
SqlCeCommand cmd=null;
cn = new SqlCeConnection(LocalConnection);
cn.Open();
SQL = sqlCountString;
cmd = new SqlCeCommand(SQL, cn);
cmd.CommandText = SQL;
Count =(int)cmd.ExecuteScalar();
cmd.Dispose();
cn.Close();
cn.Dispose();
SQL = null;
return Count;
//}
//catch (SqlCeException ex)
//{
// ShowErrors(ex);
//}
}
//public void DoResult(string sqlInsertString)
//{
// try
// {
// string SQL;
// SqlCeConnection cn;
// SqlCeCommand cmd;
// cn = new SqlCeConnection(LocalConnection);
// cn.Open();
// SQL = sqlInsertString;
// cmd = new SqlCeCommand(SQL, cn);
// cmd.CommandText = SQL;
// int ccc=cmd.ExecuteNonQuery();
// cmd.Dispose();
// cn.Dispose();
// }
// catch (SqlCeException ex)
// {
// ShowErrors(ex);
// }
//}
public void Submit(string sqlString)
{
try
{
SqlCeRemoteDataAccess RDA = null;
// 创建并启动新的 RDA 对象
RDA = new SqlCeRemoteDataAccess(SqlAgent, LocalConnection);
RDA.SubmitSql(sqlString,RemoteConnection);
RDA.Dispose();
//MessageBox.Show(远程执行命令成功!");
}
catch (SqlCeException ex)
{
ShowErrors(ex);
}
}
public static void ShowErrors(SqlCeException e)
{
SqlCeErrorCollection errorCollection = e.Errors;
StringBuilder bld = new StringBuilder();
Exception inner = e.InnerException;
foreach (SqlCeError err in errorCollection)
{
bld.Append("\n Error Code: " + err.HResult.ToString("X", System.Globalization.CultureInfo.CurrentCulture));
bld.Append("\n Message : " + err.Message);
bld.Append("\n Minor Err.: " + err.NativeError);
bld.Append("\n Source : " + err.Source);
foreach (int numPar in err.NumericErrorParameters)
{
if (0 != numPar) bld.Append("\n Num. Par. : " + numPar);
}
foreach (string errPar in err.ErrorParameters)
{
if (String.Empty != errPar) bld.Append("\n Err. Par. : " + errPar);
}
}
MessageBox.Show(bld.ToString());
}
}
}
36 评论
那个光盘的内容还有吗? 最后那个还有个管理端?
一点都不记得了吗?只是有点困难想问一下
@因帅得罪人
早不做程序很久了啊.
天啊,有没有人在啊,怎么才能模拟成功啊
大哥,能帮帮我吗?这个程序我下了,想在我电脑模拟起来,能装的我都装了,因为我没搞过数据库,不会运行这个,能帮我模拟起来吗?谢谢了,可以的话,加我QQ:457120821
大哥,很强啊,佩服,现在做什么呢
你好,我现在在做点餐系统,可是对于这个还是一塌糊涂,你能加下我的QQ吗,我有好多问题想请教你,谢谢506307913
其实不确定现在能帮到你多少,因为我早就不做程序了.
本文中有我当时的代码,论文,有编程思路,有空的花你可以看下啊,应该会比我自己解释要清楚的多.
谢谢你!
@顺
呵呵,欢迎再来。这个东西我电脑上有,之所以很难搜索到,估计是因为原始文件名是英文的缘故,它的英文名称是:Windows Mobile 5.0 Emulator Images for Pocket PC – CHS.msi , 下载地址是:http://download.microsoft.com/download/b/7/5/b7566ed3-6940-4541-8cf2-3e0fc1fafbc4/Windows Mobile 5.0 Emulator Images for Pocket PC – CHS.msi
Windows Mobile 5.0 Pocket PC 简体中文虚拟机,这玩意我一直没有找到,你那儿还有么?我的邮箱是zhouyanshun@yahoo.com.cn,谢谢了!
老兄,一晃三年过去了,我还是觉得你的东东太值得回味了,今天特意再故地重游。谢谢啊!
@@XX
数据库地址是:
http://fanhaijun.com/uploads/files/yunfei
(没有后缀名的,我也忘记了为什么…)
另外有个sql语句也许可以帮你方便的建表:
=========================================
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[yunfei_class]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[yunfei_class]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[yunfei_dish]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[yunfei_dish]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[yunfei_menu]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[yunfei_menu]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[yunfei_menu_state]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[yunfei_menu_state]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[yunfei_preorder]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[yunfei_preorder]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[yunfei_table]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[yunfei_table]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[yunfei_unit]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[yunfei_unit]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[yunfei_user]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[yunfei_user]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[yunfei_zone]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)
drop table [dbo].[yunfei_zone]
GO
CREATE TABLE [dbo].[yunfei_class] (
[class_id] [int] IDENTITY (1, 1) NOT NULL ,
[class_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[yunfei_dish] (
[dish_id] [int] IDENTITY (1, 1) NOT NULL ,
[dish_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[dish_unit_id] [int] NULL ,
[dish_class_id] [int] NULL ,
[dish_price] [int] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[yunfei_menu] (
[menu_id] [int] IDENTITY (1, 1) NOT NULL ,
[menu_table_id] [int] NULL ,
[menu_dish_id] [int] NULL ,
[menu_num] [int] NULL ,
[menu_memo] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[menu_state_id] [smallint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[yunfei_menu_state] (
[state_id] [int] NULL ,
[state_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[yunfei_preorder] (
[preorder_id] [int] IDENTITY (1, 1) NOT NULL ,
[preorder_table_id] [int] NULL ,
[preorder_date] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[preorder_person_num] [smallint] NULL ,
[preorder_person_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[preorder_person_tel] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[preorder_precost] [int] NULL ,
[preorder_time] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[yunfei_table] (
[table_id] [int] IDENTITY (1, 1) NOT NULL ,
[table_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[table_zone_id] [int] NULL ,
[table_person_num] [smallint] NULL ,
[table_pay] [smallint] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[yunfei_unit] (
[unit_id] [int] IDENTITY (1, 1) NOT NULL ,
[unit_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[yunfei_user] (
[user_id] [int] IDENTITY (1, 1) NOT NULL ,
[user_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[user_pass] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[user_level] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[user_login] [datetime] NULL
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[yunfei_zone] (
[zone_id] [int] IDENTITY (1, 1) NOT NULL ,
[zone_name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
=========================================
还原数据库yunfei
你好,数据库可否提供,谢谢!
@顺
你上次说你的项目相距很远,是这个电力抄表的吗?是怎么解决远距离通信的问题的?希望不吝赐教!
老兄真是谢谢你了。有你当初的支持,我的PDA手持设备开发出来了,已经用于电力抄表中了。
朋友 真的感谢你 无法语言感谢
能把这个源码发到我邮箱吗?我想学习下 谢谢
laosi668@qq.com
多谢了,已经下载了,学习!@Haijun
http://fanhaijun.com/uploads/2008/09/pda.rar
我已经把地址放到文章里面了,看看啊~~如果有用的话,呵呵.
哥们,我想学习下,能不能把代码发到我邮箱里?先谢谢了!
whu-jiangping@163.com
哥们 可以把这个代码提供下 如果方便的话发我我油箱可以吗??
pig911@163.com
已经发了啊~请查收..不过水平确实不匝地..
哥们,还想问你一下。你的Windows Mobile 5.0 Pocket PC 简体中文虚拟机,从哪儿下的。
那个早就忘记了啊。不过好像是微软官方的。
还想问老兄一下,你德这个软件,真正定制到PDA设备没有。如果有,是怎样弄的。据说要用到
platform builder 6.0,这个你有么。有的话,能搞一个来用么!!先谢谢了。
没有哦,当时没有想那么多的,只是在电脑上虚拟成功而已,也没有人有真正的pda。
老兄,对于第一个问题,我还想问您一下,您当时用的Pocket pc 2003是不是重新下载的一个,不是VS2005开发环境自己带的。或者,你设置了什么地方吧。这个问题网上有很多人问,但好像都没有答案,甚至,有一个冒似微软的网站上都说没有办法,所以真的要麻烦您回想一下当时是怎样搞得?您的出山是很多人的期盼呀!
其实我现在记的不是很清楚了,不过当时写了一个简单的介绍的,那个东西应该是专门下载安装的:
==================================================
运行环境:
win xp
sql mobile 2005(移动端)
sql server 2000(服务器端)
IIS(服务器端)
开发必需
1. Visual Studio 2005
2. Microsoft ActiveSync 4.1
3. Virtual PC Network Driver. (netsvwrap(Virtual PC Network Driver).msi)
4. Windows Mobile 5.0 SDK for Pocket PC (Windows Mobile 5.0 Pocket PC SDK.msi)
5. Windows Mobile 5.0 Pocket PC 简体中文虚拟机(Windows Mobile 5.0 Emulator Images for Pocket PC – CHS.msi)
数据方式:
可以考虑用三种方式和sqlserver2000同步,
1.webservice
2.RDA
3.同步复制
其中webservice配置稍微简单一点,同步复制配置比较繁琐,RDA介于两者之间,RDA可以使用pull,push方法来获取,修改数据
http://www.360doc.com/showWeb/0/0/8193.aspx
——————————————————————————————-
SQL Server 复制组件要求(使用RDA)
在多服务器环境中,若要在 SQL Server Mobile 和 SQL Server 之间交换数据,则必须在运行 IIS 的计算机上安装复制组件。下表列出了如何在两个不同版本的 SQL Server 上安装复制组件:
SQL Server 2005
从 SQL Server 2005 产品 CD 安装 SQL Server 2005 复制组件。
SQL Server 2000 SP3a 或更高版本
从以下两个位置之一安装 SQL Server 2000 复制组件 (sql2kcnsp4.msi):
· Microsoft Visual Studio 2005:在 Windows 资源管理器中,查找 drive:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0,然后运行 sql2kcnsp4.msi 文件。
· 网站:有关如何从网站安装复制组件的信息,请参阅 Microsoft SQL Server 2005 Mobile Edition Home Page。
启用RDA方式:
在服务器端(sql server200)配置:
开始—程序—Microsoft SQL Server 2005 Mobile Edition—– Web 同步向导——–选择“sql server mobile edition”—
取消“UNC快照”选项
谢谢,老兄,第一个语言问题,我还没有解决。第二个解决了。因为你这个项目是餐厅用,距离不是很远。我的项目是好几千公里,数据库不能用实时同步的方法,只能有一个暂存的空间。比如SD卡等。但是在虚拟设备中,是没有的,这样就要用到microsoft activesync,当然方法肯定还有很多。我还在摸索。
🙂 我那时候是边找资料边做的,也没有学过,所以很多很多东西我都不明了的,不过如果有我任何知道的,我都会说出来的~~
哥们,您真是好人。关于这个程序,我有两个问题想向您请教:一、为什么我在VS2005的模拟器下的中文全是方框,应该怎样设置。二、您的程序是采用模拟器和PC机同步数据库的方式,如果不用这种方式,WINCE中虚拟机中的*.sdf数据库文件怎样上传到PC上呢?先谢谢您了。我的邮箱还是zhouyanshun@yahoo.com.cn
🙂 1 我也不知道,也许安装的中文语言文件有问题吧?2 数据都是用远程数据访问 (RDA)的push和pull方法同步的,不需要将sdf文件传到pc上去,pc上是不用sdf文件的,只需要将数据内容传上去…
哥们,你真的很强, 可以把这个代码提供下 本人想学习下 如果方便的话发我我邮箱么可以吗??
我的邮箱是 zhouyanshun@yahoo.com.cn
🙂 已经发了~
没有问题.不过都好久没有动过了,你自己慢慢看吧~~呵呵,不好的地方,不要笑啊.已经发了
哥们 可以把这个代码提供下 本人想学习下 如果方便的话发我我油箱可以吗??
lldd_1314@126.com