Push 方法 (String, String, RdaBatchOption)

将 SQL Server Compact 3.5 中跟踪的提取表的更改传送回 SQL Server 表。这些更改可分别使用各自的事务应用到服务器,也可以组成一批共用同一事务。

命名空间:  System.Data.SqlServerCe
程序集:  System.Data.SqlServerCe(在 System.Data.SqlServerCe.dll 中)

语法

声明
Public Sub Push ( _
    localTableName As String, _
    oleDBConnectionString As String, _
    batchOption As RdaBatchOption _
)
用法
Dim instance As SqlCeRemoteDataAccess
Dim localTableName As String
Dim oleDBConnectionString As String
Dim batchOption As RdaBatchOption

instance.Push(localTableName, oleDBConnectionString, _
    batchOption)
public void Push(
    string localTableName,
    string oleDBConnectionString,
    RdaBatchOption batchOption
)
public:
void Push(
    String^ localTableName, 
    String^ oleDBConnectionString, 
    RdaBatchOption batchOption
)
member Push : 
        localTableName:string * 
        oleDBConnectionString:string * 
        batchOption:RdaBatchOption -> unit 
public function Push(
    localTableName : String, 
    oleDBConnectionString : String, 
    batchOption : RdaBatchOption
)

参数

  • localTableName
    类型:System. . :: . .String
    SQL Server Compact 3.5 表的名称,该表将接收提取出的 SQL Server 记录。如果该表已存在,将出现错误。

注释

应用程序调用 Push 方法来将跟踪的 SQL Server Compact 3.5 提取表的更改传送回 SQL Server 表。应用程序必须已通过调用 Pull 方法(RdaTrackOption 设置为 TrackingOnTrackingOnWithIndexes)创建本地 SQL Server Compact 3.5 表。

oledbConnectionString 指定了连接到 SQL Server 时使用的所有连接信息。

如果使用 SQL Server 身份验证,则在 OLEDBConnectionString 中指定的用户 ID 必须拥有读取 SQL Server 表的授权。

如果通过在 OLEDBConnectionString 中设置 INTEGRATED SECURITY="SSPI" 来使用 Windows 身份验证,则 Internet 用户必须拥有读取 SQL Server 表的授权。下面根据身份验证方法来标识 Internet 用户:

  • 将 Microsoft Internet 信息服务 (IIS) 虚拟目录配置为使用匿名访问时,Internet 用户使用 Internet Guest 帐户(IUSR_计算机名)标识来运行。如果将其他 Windows 用户帐户配置为 Internet Guest 帐户,则 Internet 用户将使用该帐户的标识来运行。

  • 将 IIS 虚拟目录配置为使用基本身份验证时,Internet 用户将使用 Windows 用户帐户的标识来运行,客户端将为该帐户提供 Internet 用户名和密码。

  • 将 IIS 虚拟目录配置为使用集成 Windows 身份验证时,Internet 用户将使用 Windows 用户帐户的标识来运行,客户端将为该帐户提供 Internet 用户名和密码。

如果调用 Pull 方法时指定了 errorTableName,则在 Push 期间检测出的任何错误都将记录在错误表中。有关错误表工作原理的更多信息,请参阅 SQL Server Compact 3.5 联机丛书中的“RDA 冲突检测与解决”。

示例

下面的示例创建 SqlCeRemoteDataAccess 对象,设置多个属性,然后调用 Push 方法。

' Connection String to the SQL Server
'
Dim rdaOleDbConnectString As String = "Data Source=MySqlServer;Initial Catalog=AdventureWorks; " & _
    "User Id=username;Password = <password>"

' Initialize RDA Object
'
Dim rda As SqlCeRemoteDataAccess = Nothing

Try
    ' Try the Push Operation
    '
    rda = New SqlCeRemoteDataAccess( _
        "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll", _
        "Data Source=MyDatabase.sdf")

    rda.InternetLogin = "MyLogin"
    rda.InternetPassword = "<password>"

    rda.Push("MyLocalTable", rdaOleDbConnectString, RdaBatchOption.BatchingOn)

    ' or, try this overload:
    '
    ' rda.Push("MyLocalTable", rdaOleDbConnectString)

Catch
    ' Handle errors here
    '
Finally
    ' Dispose of the RDA Object
    '
    rda.Dispose()
End Try
// Connection String to the SQL Server
//
string rdaOleDbConnectString = "Data Source=MySqlServer;Initial Catalog=AdventureWorks; " +
    "User Id=username;Password = <password>";

// Initialize RDA Object
//
SqlCeRemoteDataAccess rda = null;

try
{
    // Try the Push Operation
    //
    rda = new SqlCeRemoteDataAccess(
        "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll",
        "Data Source=MyDatabase.sdf");

    rda.InternetLogin = "MyLogin";
    rda.InternetPassword = "<password>";

    rda.Push("MyLocalTable", rdaOleDbConnectString, RdaBatchOption.BatchingOn);

    // or, try this overload:
    //
    // rda.Push("MyLocalTable", rdaOleDbConnectString);
}
catch (SqlCeException)
{
    // Handle errors here
    //
}
finally
{
    // Dispose of the RDA Object
    //
    rda.Dispose();
}

请参阅

参考

SqlCeRemoteDataAccess类

SqlCeRemoteDataAccess 成员

Push 重载

System.Data.SqlServerCe 命名空间