操作 SQL Server Mobile 2005 数据库的常用 C# 代码

SQL Server Mobile 2005 程序开发 SQL Server Mobile 2005 程序开发PPT演示教材 立即下载
整理几段操作 SQL Server Mobile 数据库的常用 C# 代码,供刚刚接触 SQL Server Mobile 开发的朋友参考。

1. 创建数据库
// 创建数据库
File.Delete("Test.sdf");
SqlCeEngine engine 
= new SqlCeEngine(
    
"Data Source='Test.sdf';LCID=1033;Password=/"s$;2'!dS64/";Encrypt=TRUE;");
engine.CreateDatabase();

2. 验证和修复数据库
// 验证和修复数据库
SqlCeEngine engine = new SqlCeEngine("Data Source=AdventureWorks.sdf");
if (false == engine.Verify())
{
    MessageBox.Show(
"Database is corrupted.");
    engine.Repair(
null, RepairOption.RecoverCorruptedRows);
}

3. 压缩数据库
// 压缩数据库
// 通过从现有文件新建数据库文件来回收 SQL Server Mobile 数据库中浪费的空间。
// 此方法还可用来更改数据库的排序顺序、加密或密码设置。
// 该连接字符串指定一个指向将由此方法创建的目标数据库的连接。
// 如果指定的数据库已经存在或者具有相同名称的另一文件已经存在,则会引发异常。
// 如果为连接字符串传递空字符串,则新的数据库文件将改写旧的数据库文件,
// 但名称保持不变。
SqlCeEngine engine = new SqlCeEngine("Data Source=AdventureWorks.sdf");
//engine.Compact(null);
engine.Compact("Data Source=; Password=a@3!7f$dQ;");

 
4. 收缩数据库

// 收缩数据库
// 通过将空页移动到文件的结尾然后截断该文件,
// 来回收 SQL Server Mobile 数据库中浪费的空间。
// 与 Compact 方法不同,Shrink 方法不创建临时数据库文件,
// 而是将所有空页和未分配的页都移到了文件的结尾,然后截断,从而减小数据库的总大小。
SqlCeEngine engine = new SqlCeEngine("Data Source=AdventureWorks.sdf");
engine.Shrink();

5. 合并复制
// 合并复制
//
 实例化并配置 SqlCeReplication 对象
SqlCeReplication repl = new SqlCeReplication();
repl.InternetUrl 
= "http://www.adventure-works.com/sqlmobile/sqlcesa30.dll";
repl.InternetLogin 
= "MyInternetLogin";
repl.InternetPassword 
= "<password>";
repl.Publisher 
= "MyPublisher";
repl.PublisherDatabase 
= "MyPublisherDatabase";
repl.PublisherLogin 
= "MyPublisherLogin";
repl.PublisherPassword 
= "<password>";
repl.Publication 
= "MyPublication";
repl.Subscriber 
= "MySubscriber";
repl.SubscriberConnectionString 
= "Data Source=MyDatabase.sdf";

// 创建一个本地 SQL Server Mobile 数据库的订阅
repl.AddSubscription(AddOption.CreateDatabase);

// 跟 SQL Server 数据库进行同步
repl.Synchronize();

// 清理 repl 对象
repl.Dispose();

6. 远程数据访问(RDA)
// 远程数据访问
//
 实例化并配置 SqlCeRemoteDataAccess 对象
SqlCeRemoteDataAccess rda = new SqlCeRemoteDataAccess();
rda.InternetUrl 
= "http://www.adventure-works.com/sqlmobile/sqlcesa30.dll";
rda.InternetLogin 
= "MyInternetLogin";
rda.InternetPassword 
= "<password>";
rda.LocalConnectionString 
= "Data Source=MyDatabase.sdf";

// 从 SQL Server 下载数据
rda.Pull(
    
"Employees",
    
"SELECT * FROM DimEmployee",
    
"Provider=sqloledb;server=MySqlServer;database=AdventureWorks;uid=sa;pwd=;",
    RdaTrackOption.TrackingOnWithIndexes,
    
"ErrorTable");

//
// 修改本地数据
//

// 将已修改的数据上传到 SQL Server
rda.Push(
    
"DimEmployee", 
"Provider=sqloledb;server=MySqlServer;database=AdventureWorks;uid=sa;pwd=;");

// 提交 SQL 语句在 SQL Server 上执行
rda.SubmitSql(
    
"CREATE TABLE MyRemoteTable (colA int)", 
    
"Provider=sqloledb;server=MySqlServer;database=AdventureWorks;uid=sa;pwd=;");

7. 使用 SqlCeResultSet
// 使用 SqlCeResultSet
//
 创建 SQL Server Mobile 数据库连接
SqlCeConnection conn = new SqlCeConnection("Data Source=Northwind.sdf");

// 创建并配置 SqlCeCommand 对象
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText 
= "SELECT * FROM Orders";

// 创建 SqlCeResultSet 对象,并配置为可滚动、可更新、检测数据源更改
ResultSetOptions options = ResultSetOptions.Scrollable | 
                                         ResultSetOptions.Sensitive 
| 
                                         ResultSetOptions.Updatable;
SqlCeResultSet resultSet 
= cmd.ExecuteResultSet(options); 

// 创建 ResultSetView 对象,配置为只显示序号为 1,3,5,8 的列
ResultSetView resultSetView = resultSet.ResultSetView; 
int[] ordinals = new int[] { 1,3,5,8};
resultSetView.Ordinals 
= ordinals;

// 将 ResultSetView 绑定到 DataGrid 控件
this.dataGrid.DataSource = resultSetView;

8. 处理 SqlCeException
// 处理 SqlCeException
public
 static void ShowErrors(SqlCeException e)
{
    SqlCeErrorCollection errorCollection 
= e.Errors;

    StringBuilder bld 
= new StringBuilder();
    Exception inner 
= e.InnerException;

    
foreach (SqlCeError err in errs)
    {
        
// 标识错误类型的 HRESULT 值,这些错误不是 SQL Server CE 固有的
        bld.Append("/r/nError Code: ").Append(err.HResult.ToString("X"));
        
// 对错误进行描述的文本
        bld.Append("/r/nMessage: ").Append(err.Message);
        
// 获取 SqlCeError 的本机错误号
        bld.Append("/r/nMinor Err.: ").Append(err.NativeError);
        
// 生成错误的提供程序的名称
        bld.Append("/r/nSource: ").Append(err.Source);

        
// 遍历前三个错误参数。SQL Server CE 使用错误参数来提供有关错误的其他详细信息。
        foreach (int numPara in err.NumericErrorParameters)
        {
            
// 虽然错误可能存在参数,但并非发生的所有错误都返回参数。
            
// 如果发生某个错误时没有返回任何参数,则该数组的值为 0。
            if (numPara != 0)
            {
                bld.Append(
"/r/nNum. Par.: ").Append(numPara);
            }
        }

        
// 遍历最后三个错误参数。SQL Server CE 使用错误参数来提供有关错误的其他详细信息。
        foreach (string errPara in err.ErrorParameters)
        {
            
// 虽然错误可能存在参数,但并非发生的所有错误都返回参数。
            
// 如果发生某个错误时没有返回任何参数,则该数组的值将为空字符串。
            if (errPara != String.Empty)
            {
                bld.Append(
"/r/nErr. Par.: ").Append(errPara);
            }
        }
}

    MessageBox.Show(bld.ToString());
}
 
SQL Server Mobile数据库开发 Windows Embedded从入门到精通系列课程之SQL Server Mobile数据库开发 [兼容模式] 立即下载

相关推荐

直接从SQLServer生成C#实体类的工具

连接SQLServer数据库,按指定的库、表、字段和命名空间,直接生成实体类,如果格式不满意,可以预览修改,不用再用VS逐个地去重构字段了

操作SQL Server Mobile数据库的常用C#代码

整理几段操作 SQL Server Mobile 数据库的常用 C# 代码,供刚刚接触 SQL Server Mobile 开发的朋友参考。1. 创建数据库 // 创建数据库File.Delete("Test.sdf");SqlCeEngine engine = new SqlCeEngine(    "Data Source='Test.sdf';LCID=1033;Password=\"s$...

weixin_34292287的博客 171

SQL Server 2005 SqlCeResultSet和高性能数据访问深度探索

内含ppt,视频,文档,示例!!!!!!!

SQL Server Mobile 学习(一):环境搭建

1.SQL Server Mobile 简介2.获取 SQL Server Mobile3.安装必备软件4.安装开发环境5.安装服务器环境6.配置 Web 同步向导7.使用 Internet Explorer 检查 SQL Server Mobile 服务器代理配置8.使用SQL Server Mobile 数据库==========================1.SQL Serv

freeliver54的专栏 654

HCIP-Cloud Service DevOps Engineer V2.0 华为认证云服务 DevOps高级工程师 章节测试题+结课测试题(模拟考试题)汇总

本文为HCIP-Cloud Service DevOps Engineer V2.0 华为认证云服务DevOps高级工程师 在线课程中所有章节测试以及结课测试(HCIP-Cloud Service DevOps Engineer模拟考试)习题和答案

gaogao0305的博客 2267

MaaS 商业模式全面分析报告:从技术赋能到商业变现的全链条探索

MaaS(模型即服务)商业模式正成为AI产业主流,2024年上半年中国市场规模达2.5亿元,预计2027年占比将提升至47%。该模式通过云服务提供预训练AI模型,大幅降低企业应用AI的技术门槛和成本。核心盈利方式包括按使用量计费、订阅制、定制化服务等,其中混合模式因灵活性成为趋势。MaaS产业链包含模型提供商、云平台、应用开发商和最终用户,重塑了AI产业格局。随着《数据法案》等监管加强,数据增值服务面临更严格合规要求。未来五年,中国MaaS市场增速预计超50%,用户规模将从2025年2.1亿增至2030年5

芯片行业20年 · 参与定义实现千万级量产出货 · AI芯片PM 2892

sql mobile 系列-手机设备上安装部署SQL Server Mobile

手机等手持设备WINDOWS上安装和部署SQL Server Mobile 网上 搜集 <br /><br />1. 在设备上安装 .NET Compact Framework。将下面的文件复制到您的设备中: <br />/Program Files/Microsoft Visual Studio 8/SDK/version/CompactFramework <br />/WindowsCE/platform/processor/NETCFversion.platform.processor.cab。 <b

北京土豆(qqxinxi) 的专栏 1225

数字电路复位信号设计(异步复位、同步释放)笔记详解

复位信号设计(异步复位、同步释放)笔记详解 1 时序设计 1.1 复位信号设计(异步复位、同步释放) 1.1.0 复位恢复时间和清除时间 首先解释一下恢复时间(recovery time)和清除时间(removal time):(以复位信号低电平有效为例) 复位恢复时间(recovery time):撤销复位时,复位信号无效到时钟有效沿来临之间需要维持的最小的时间,类似于同步时钟的建立时间setup time; 复位清除时间(removal time):复位时,在时钟有效沿来临之后复位信号还需要保持复位

weixin_42294124的博客 1万+

Sql Server 2005 与Sql Server Mobile(Sql server 2005 mobile Edition)数据同步步骤以及问题解决方案...

Sql Server 2005 与Sql Server Mobile(Sql server 2005 mobile Edition)数据同步步骤以及问题解决方案 2010年11月11日   目前很多软件厂商针对移动设备的数据库同步解决方案,这些方案主要分为两种:第一种,是针对某种特定数据库提供的数据同步方案,比如SQL Sever的RDA和Replication、Oracle Lite和...

cln11cln 292

从摄像头选型到PCB布线:搞懂MIPI CSI带宽计算,避免你的嵌入式项目翻车

本文详细解析了MIPI CSI带宽计算在嵌入式项目中的关键作用,从摄像头选型到PCB布线提供全流程指导。通过实际案例和计算公式,帮助工程师准确计算带宽需求,避免图像丢帧和系统崩溃问题,同时优化PCB设计确保信号完整性。

weixin_30533109的博客 376

让 ABAP 复杂内表优雅“喂饱”:Complex Internal Table Filling 全面实战指南

本文为ABAP开发者系统梳理了复杂内表的填充与复制方法。重点介绍了work area的两种声明方式、APPEND操作的多形态用法及其初始值语义,以及VALUE #( )构造器的逐行与整表写法。同时讲解了CORRESPONDING的同名字段映射功能,帮助开发者在"航司与航线"等复杂业务场景中实现最佳实践。文章还涵盖内存优化、可读性建议和常见误区,提供可运行样例,适用于ABAP On-Premise和SAP BTP环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 169

操作SQL Server Mobile 2005数据库的常用C#代码

整理几段操作 SQL Server Mobile 数据库的常用 C# 代码,供刚刚接触 SQL Server Mobile 开发的朋友参考。1. 创建数据库PEc// 创建数据库PEcFile.Delete("Test.sdf");PEcSqlCeEngine engine = new SqlCeEngine(PEc    "Data Source=Test.sdf;LCID=1033;P

Glacial Zone 520

【PINN物理信息网络】基于PINN物理信息网络求解泊松方程(python)

【PINN物理信息网络】基于PINN物理信息网络求解泊松方程(python)

k8291121的博客 2812

转 操作 SQL Server Mobile 2005 数据库的常用 C# 代码

整理几段操作 SQL Server Mobile 数据库的常用 C# 代码,供刚刚接触 SQL Server Mobile 开发的朋友参考。1. 创建数据库// 创建数据库File.Delete("Test.sdf");SqlCeEngine engine = new SqlCeEngine(    "Data Source=Test.sdf;LCID=1033;Password=/"s$

zcrong的专栏 673

基于Simulink的异步电机参数在线辨识与自适应控制仿真

本文基于Simulink平台,详细介绍了异步电机参数在线辨识与自适应控制系统的仿真实现。针对异步电机运行中参数时变问题,采用模型参考自适应系统(MRAS)实时辨识转子电阻和互感,并结合自适应PI控制策略动态调整控制器参数。通过搭建完整的矢量控制(FOC)仿真模型,验证了系统在稳态辨识、参数摄动和动态响应等工况下的性能:参数辨识误差<1.2%,转速跟踪误差<20rpm,动态响应时间<10ms。文章还提供了详细的Simulink建模步骤、核心代码实现及性能分析,为高级电机控制系统的设计与优化提

amy_mhd的博客 73

学Simulink--基于风力发电系统的场景实例:海上风电场在复杂海况下的动态响应仿真

本实例将创建一个针对海上风电场在复杂海况下的动态响应模型。该模型不仅考虑了不同风速条件的影响,还引入了波浪和水流对风机塔架及基础结构的影响。通过仿真验证系统的有效性,并探索最佳控制参数设置以提高整体性能和稳定性。本教程展示了如何在Simulink中实现一个海上风电场在复杂海况下的动态响应仿真模型,并分析其性能。通过这种方式,我们不仅可以验证所提出的技术手段在提高海上风电场稳定性和效率方面的有效性,还能进一步探索优化参数以适应特定的应用场景。

xiaoheshang_123的博客 168
上一篇: 获取智能设备唯一编号
下一篇: 使用 Microsoft .NET Framework 精简版中的 MessageWindow 类
Channels_net
博客等级 码龄22年 12粉丝 28原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值