无线餐饮点菜系统–去年的毕业设计
无线点菜
仿龙脉
截图:






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()); } } }
哥们 可以把这个代码提供下 本人想学习下 如果方便的话发我我油箱可以吗??
lldd_1314@126.com
没有问题.不过都好久没有动过了,你自己慢慢看吧~~呵呵,不好的地方,不要笑啊.已经发了
哥们,你真的很强, 可以把这个代码提供下 本人想学习下 如果方便的话发我我邮箱么可以吗??
我的邮箱是 zhouyanshun@yahoo.com.cn
哥们,您真是好人。关于这个程序,我有两个问题想向您请教:一、为什么我在VS2005的模拟器下的中文全是方框,应该怎样设置。二、您的程序是采用模拟器和PC机同步数据库的方式,如果不用这种方式,WINCE中虚拟机中的*.sdf数据库文件怎样上传到PC上呢?先谢谢您了。我的邮箱还是zhouyanshun@yahoo.com.cn
谢谢,老兄,第一个语言问题,我还没有解决。第二个解决了。因为你这个项目是餐厅用,距离不是很远。我的项目是好几千公里,数据库不能用实时同步的方法,只能有一个暂存的空间。比如SD卡等。但是在虚拟设备中,是没有的,这样就要用到microsoft activesync,当然方法肯定还有很多。我还在摸索。
老兄,对于第一个问题,我还想问您一下,您当时用的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.
4. Windows Mobile 5.0 SDK for Pocket PC
5. Windows Mobile 5.0 Pocket PC 简体中文虚拟机
数据方式:
可以考虑用三种方式和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快照”选项
还想问老兄一下,你德这个软件,真正定制到PDA设备没有。如果有,是怎样弄的。据说要用到
platform builder 6.0,这个你有么。有的话,能搞一个来用么!!先谢谢了。
没有哦,当时没有想那么多的,只是在电脑上虚拟成功而已,也没有人有真正的pda。
哥们,还想问你一下。你的Windows Mobile 5.0 Pocket PC 简体中文虚拟机,从哪儿下的。
那个早就忘记了啊。不过好像是微软官方的。
哥们 可以把这个代码提供下 如果方便的话发我我油箱可以吗??
pig911@163.com
已经发了啊~请查收..不过水平确实不匝地..
哥们,我想学习下,能不能把代码发到我邮箱里?先谢谢了!
whu-jiangping@163.com
http://fanhaijun.com/uploads/2008/09/pda.rar
我已经把地址放到文章里面了,看看啊~~如果有用的话,呵呵.
多谢了,已经下载了,学习!@Haijun
朋友 真的感谢你 无法语言感谢
能把这个源码发到我邮箱吗?我想学习下 谢谢
laosi668@qq.com
老兄真是谢谢你了。有你当初的支持,我的PDA手持设备开发出来了,已经用于电力抄表中了。
@顺
你上次说你的项目相距很远,是这个电力抄表的吗?是怎么解决远距离通信的问题的?希望不吝赐教!
还原数据库yunfei
你好,数据库可否提供,谢谢!
@@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
=========================================