设备与数据访问

更新:2007 年 11 月

在 .NET Compact Framework 中进行应用程序的数据访问编程时,应注意以下几点:

  • .NET Compact Framework 不支持下面这些类:

    System.Data.OleDb 命名空间

    System.Data.SqlClient.SqlClientPermission

    System.Data.SqlClient.SqlClientPermissionAttribute

  • 由于设备的大小和性能考虑,.NET Compact Framework 不支持下表中描述的功能。

    不支持的功能

    备注

    连接池

    任何时候,设备与 SQL Server 的实例之间只能有少量的连接。

    分布式事务

    事务不能跨数据库或服务器。在分布式事务期间,System.Data.SqlClient 产生 InvalidOperationException

    通过设备插座连接

    只支持与 SQL Server 实例的 TCP/IP 连接。

    加密连接

    不支持与 SQL Server 实例的加密连接。

  • 不支持以下 SqlConnection.ConnectionString 属性。

    attachdbfilename

    最大池大小

    连接生存期

    最小池大小

    连接重置

    网络库

    加密

    登记

     

  • 只有英文设备的 SQL_Latin1_General_CP1_CI_AS 排序规则才支持 ANSI 数据。.NET Framework 中的所有字符串都是 Unicode。System.Data.SqlClient 使用 .NET Framework 编码类将 SQL Server 中的 ANSI 数据转换为 Unicode。尽管在 .NET Compact Framework 中支持编码类,但并非支持所有代码页。

    此外,如果基于 Windows CE .NET 的设备未提供 ANSI 列的代码页,则 System.Data.SqlClient 不能读取或写入该列。如果不能使用 ANSI 到 Unicode 转换的代码页,System.Data.SqlClient 就会生成错误。有关可用于基于 Windows CE .NET 的特定设备的代码页的信息,请与设备制造商联系。

  • 支持 Windows 身份验证;不过,必须始终在连接字符串中指定用于域控制器中的身份验证的用户 ID 和密码。

  • 在基于 Microsoft Windows CE 的设备上,使用 System.Data.SqlClient 的应用程序可以使用 Windows NT LAN 管理器 (NTLM) 身份验证协议,而不是使用 SQL Server 身份验证。为此,连接字符串中必须包含以下属性:

    Integrated Security=SSPI; User ID=DOMAIN\username; Password=********;

  • System.Data.SqlClient 不能自动发现指定实例的端口号或在自定义端口上运行的 SQL Server。要连接到在自定义端口上运行的服务器,必须在连接字符串中的逗号后指定该端口号,例如:

    Data Source=myServer\myInstance,3860, UserID=test; ...

请参见

其他资源

.NET Compact Framework 中的数据访问和 XML 支持