SqlCeLockTimeoutException 類別

如果已達到鎖定逾時,會擲回這個例外狀況。

繼承階層

System.Object
  System.Exception
    System.SystemException
      System.Runtime.InteropServices.ExternalException
        System.Data.Common.DbException
          System.Data.SqlServerCe.SqlCeException
            System.Data.SqlServerCe.SqlCeLockTimeoutException

命名空間:  System.Data.SqlServerCe
組件:  System.Data.SqlServerCe (在 System.Data.SqlServerCe.dll 中)

語法

'宣告
<SerializableAttribute> _
Public Class SqlCeLockTimeoutException _
    Inherits SqlCeException
'用途
Dim instance As SqlCeLockTimeoutException
[SerializableAttribute]
public class SqlCeLockTimeoutException : SqlCeException
[SerializableAttribute]
public ref class SqlCeLockTimeoutException : public SqlCeException
[<SerializableAttribute>]
type SqlCeLockTimeoutException =  
    class
        inherit SqlCeException
    end
public class SqlCeLockTimeoutException extends SqlCeException

SqlCeLockTimeoutException 型別公開下列成員。

建構函式

  名稱 說明
受保護的方法 SqlCeLockTimeoutException 協助序列化的建構函式。

上層

屬性

  名稱 說明
公用屬性 Data (繼承自 Exception)
公用屬性 ErrorCode (繼承自 ExternalException)
公用屬性 Errors 取得一個或多個SqlCeError 物件的集合,這些物件包含由 .NET Compact Framework Data Provider for SQL Server Compact 所產生之例外狀況的相關詳細資訊。 (繼承自 SqlCeException)
公用屬性 HelpLink (繼承自 Exception)
公用屬性 HResult 取得例外狀況的 HRESULT 值。這個值與例外狀況的 SqlCeErrorCollection 中的第一個 SqlCeError 執行個體的 HResult 值相同。 (繼承自 SqlCeException)
公用屬性 InnerException (繼承自 Exception)
公用屬性 Message 取得描述此例外狀況的 SqlCeErrorCollection 中第一個 SqlCeError 執行個體的文字。 (繼承自 SqlCeException)
公用屬性 NativeError 取得 SqlCeErrorCollection 中第一個 SqlCeError 的原生錯誤號碼。如需有關此錯誤的詳細資訊,請參閱《SQL Server Compact 線上叢書》中<疑難排解>一節內的「SQL Server Compact 錯誤」主題。 (繼承自 SqlCeException)
公用屬性 Source 取得產生錯誤的 OLE DB 提供者名稱。 (繼承自 SqlCeException)
公用屬性 StackTrace (繼承自 Exception)
公用屬性 TargetSite (繼承自 Exception)

上層

方法

  名稱 說明
公用方法 Equals (繼承自 Object)
受保護的方法 Finalize (繼承自 Object)
公用方法 GetBaseException (繼承自 Exception)
公用方法 GetHashCode (繼承自 Object)
公用方法 GetObjectData 安全性關鍵。 使用序列化物件時所需的資料來擴展 SerializationInfo。 (覆寫 SqlCeException.GetObjectData(SerializationInfo, StreamingContext)。)
公用方法 GetType (繼承自 Exception)
受保護的方法 MemberwiseClone (繼承自 Object)
公用方法 ToString (繼承自 Exception)

上層

備註

如需詳細資訊,請參閱《SQL Server Compact 線上叢書》中的<鎖定 (SQL Server Compact)>主題。

範例

        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);
            }
        }

執行緒安全性

這個類型的任何公用靜態 (在 Microsoft Visual Basic 中為 Shared) 成員都是執行緒安全的。並不是所有的執行個體成員都保證可以用於所有的執行緒。

請參閱

參考

System.Data.SqlServerCe 命名空間