SQL CE数据库模拟器部署

1 模拟器中打开SQLCE数据库

 首先打开设备仿真管理器,打开WM 6.5 Professional 仿真器,插入底座。

 

 

2 模拟器运行效果如下所示:

 

设置共享文件件(SD卡位置)

 

4 拷贝的SQL Server Compact安装包

From :

http://www.cnblogs.com/bobli/archive/2008/10/27/1320457.html

摘要:SQL Server Compact的安装包由三部分功能组成,并且区分CPU平台和操作系统平台,初学者往往不知道如何去区分它们。本文将对SQL Server Compact的安装包进行介绍,让你知道如何区分和选择它们。

如果你是使用Visual Studio 2005/2008开发.NET Compact Framework应用程序,并在程序中用到了SQL Server Compact数据库,Visual Studio在向设备(或仿真器)部署你的程序时,会自动将SQL Server Compact一同部署上去。如果你开发的是Native Code的应用程序,就需要自己手动部署SQL Server Compact安装包了。另外,在给最终用户的设备部署应用程序时,也是需要自己手动部署SQL Server Compact的。

SQL Server Compact的安装包存放在以下位置,我们暂称为安装包“根目录”:

C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices

根目录下有wce400wce500两个子目录,分别存放着以Windows CE 4.0Windows CE 5.0为内核的操作系统平台的安装包。Windows Mobile 2003Windows CE 4.0版本的SQL Server Compact安装包在wce400目录下;Windows Mobile 5.0/6.0/6.1Windows CE 5.0/6.0SQL Server Compact安装包在wce500目录下。

目录

平台

wce400

Windows Mobile 2003, Windows CE 4.0

wce500

Windows Mobile 5.0/6.0/6.1, Windows CE 5.0/6.0

打开wce500目录,可以看到一些以处理器名称命名的子目录,目录名分别为armv4i, mipsii, mipsii_fp, mipsiv, mipsiv_fp, sh4x86Windows Mobile设备的CPU一般都属于armv4iWindows CE则要看具体的硬件。

打开armv4i目录,可以看到一些.cab文件。下面表格就以SQL Server Compact 3.1为基础描述了每个安装包文件的功能和适用平台:

 

安装包

平台

功能

sqlce30.wce5.armv4i.CAB

Windows CE

Engine

sqlce30.ppc.wce5.armv4i.CAB

Windows Mobile Pocket PC

Engine

sqlce30.phone.wce5.armv4i.CAB

Windows Mobile Smartphone

Engine

sqlce30.repl.wce5.armv4i.CAB

Windows CE

Merge Replication

sqlce30.repl.ppc.wce5.armv4i.CAB

Windows Mobile Pocket PC

Merge Replication

sqlce30.repl.phone.wce5.armv4i.CAB

Windows Mobile Smartphone

Merge Replication

sqlce30.dev.ENU.wce5.armv4i.CAB

Windows CE

Query Analyzer

sqlce30.dev.ENU.ppc.wce5.armv4i.CAB

Windows Mobile Pocket PC

Query Analyzer

sqlce30.dev.ENU.phone.wce5.armv4i.CAB

Windows Mobile Smartphone

Query Analyzer

 

 

从上表可以看出,SQL Server Compact的安装包分为Engine, Merge ReplicationQuery Analyzer三部分功能,每部分功能又分Windows CE, Windows Mobile PocketPCWindows Mobile Smartphone三种操作系统平台。因此armv4i目录下面会有9.cab安装包。在很多情况下,只需要安装Engine就够了;如果你需要让SQL Server Compact支持RDAMerge Replication数据同步功能,就要再安装Merge Replication组件;如果你想要在设备上直接使用查询分析器创建、打开、查询SQL Server Compact数据库,或者在设备上调试程序,那就要再安装Query Analyzer组件。也就是说,Engine组件是必选的,Merge ReplicationQuery Analyzer组件是可选的。

安装包

包含文件

sqlce.platform.processor.cab

sqlcese30.dll
sqlceqp30.dll
sqlceme30.dll
System.Data.SqlServerCe.dll

sqlce30.repl.platform.processor.cab

sqlceca30.dll
sqlceoledb30.dll
sqlcecompact30.dll

sqlce30.dev.lang.platform.processor.cab

isqlw30.exe
sqlceerr30lang.dll

  如果你的设备安装了SQL Server Compact后,不能正常运行,尝试检查一下是否安装了错误的版本?

拷贝wce400,wce500SD卡里面

 

 

如下图所示

 

 

wce500\armv4i下面安装对应的CAB安装包,SQLCE安装完成。

返回到SD

 

 

打开Northwind.sdf文件,可以在模拟器中打开数据库。

SQL查询分析器下面输入:select * from orders,效果如下图所示:

 

 

 

 

SQL 2005 集成 Microsoft SQL Server 2005 Mobile Edition Device SDK 下载地址:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=5bd8abaa-5813-4db3-b23a-24551de2ecc1&displaylang=en

SQL Server Compact Downloads

 

http://www.microsoft.com/sqlserver/2005/en/us/compact-downloads.aspx#sp2

 

NET Campact FrameworkSQL CE兼容问题

http://blog.sina.com.cn/s/blog_49d619a30100myqd.html

http://www.cnblogs.com/procoder/archive/2009/04/15/1436275.html

 

 

 

SQL Server Mobile 创建sdf数据表

 

 

 

Vs2008出现如下错误

 

 

 

 

解决办法:

选择确定

 

 

选择覆盖现有数据库文件,点击“确定”,弹出如下窗口

 

 

 

 

选择“是”,如下图所示,文件打开完成。

 

 

 

vs2008下开发默认使用CF.net的版本为3.5,但是可以选择2.0,同时默认使用的SQL CE版本是3.5。一般存放在C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\

 

 

 数据库操作代码:

 

代码
    private void pictureBox1_Click(object sender, EventArgs e)
        {
            
//MessageBox.Show("OK");
            string str_conn = "Data Source ="
                       
+ (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\T1.sdf;");
            SqlCeConnection conn 
= new SqlCeConnection(str_conn);
            conn.Open();
            SqlCeCommand comm 
= new SqlCeCommand();
            comm.Connection 
= conn;
            comm.CommandType 
= CommandType.Text;
            
string str_sql = "insert into Tb1(User_ykt) values ('2009010219')";
            comm.CommandText 
= str_sql;
            comm.ExecuteNonQuery();
            conn.Close();
            MessageBox.Show(
"插入完成");


        }

 

 

 

 

 

posted @ 2010-12-15 19:54  jhtchina  阅读(4094)  评论(0)    收藏  举报