SqlCeLockTimeoutException 类

如果已经达到锁超时,则会引发此异常。

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

语法

声明
Public Class SqlCeLockTimeoutException _
    Inherits SqlCeException
用法
Dim instance As SqlCeLockTimeoutException
public class SqlCeLockTimeoutException : SqlCeException
public ref class SqlCeLockTimeoutException : public SqlCeException
type SqlCeLockTimeoutException =  
    class
        inherit SqlCeException
    end
public class SqlCeLockTimeoutException extends SqlCeException

注释

有关详细信息,请参阅 SQL Server Compact 3.5 联机丛书中的“锁定 (SQL Server Compact 3.5)”主题。

示例

        Dim timeout As New TimeSpan(0, 0, 15) 'hours, minutes, seconds
        Dim startTime As DateTime = DateTime.Now

        While DateTime.Now - startTime < timeout
            Try
                Dim repl As New SqlCeReplication()

                repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll"
                repl.Publisher = "myPublisher"
                repl.PublisherDatabase = "AdventureWorks"
                repl.PublisherSecurityMode = SecurityType.NTAuthentication
                repl.Publication = "AdventureWorks"
                repl.Subscriber = "Test"
                repl.SubscriberConnectionString = "Data Source='MyDatabase.sdf';Password='';"
                repl.Synchronize()
            Catch exInProgress As SqlCeTransactionInProgressException
                Thread.Sleep(3000)
                GoTo ContinueWhile1
            Catch exTimeout As SqlCeLockTimeoutException
                ' Add your own error-handling logic here
                 GoTo ContinueWhile1
            Catch e As SqlCeException
                MessageBox.Show(e.Message)
            End Try
        ContinueWhile1:
        End While
        TimeSpan timeout = new TimeSpan(0 /*hours*/, 0 /* minutes */ , 15 /*seconds*/);
        DateTime startTime = DateTime.Now;

        while (DateTime.Now - startTime < timeout)
        {
            try
            {
                SqlCeReplication repl = new SqlCeReplication();

                repl.InternetUrl = "https://www.adventure-works.com/sqlmobile/sqlcesa35.dll";
                repl.Publisher = "myPublisher";
                repl.PublisherDatabase = "AdventureWorks";
                repl.PublisherSecurityMode = SecurityType.NTAuthentication;
                repl.Publication = "AdventureWorks";
                repl.Subscriber = "Test";
                repl.SubscriberConnectionString = "Data Source='MyDatabase.sdf';Password='';";
                repl.Synchronize();
            }
            catch (SqlCeTransactionInProgressException)
            {
                Thread.Sleep(3000);
                continue;
            }
            catch (SqlCeLockTimeoutException)
            {
                //add your own error-handling logic here
            }
            catch (SqlCeException e)
            {
                MessageBox.Show(e.Message);
            }
        }

继承层次结构

System. . :: . .Object
  System. . :: . .Exception
    System. . :: . .SystemException
      System.Data.SqlServerCe. . :: . .SqlCeException
        System.Data.SqlServerCe..::..SqlCeLockTimeoutException

线程安全

Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

请参阅

参考

SqlCeLockTimeoutException 成员

System.Data.SqlServerCe 命名空间