2013-02-22 16 views

回答

0

有沒有辦法做到從Silverlight的SQL驗證,將必須在服務器上完成。

this post中有關於SQL驗證技術的很多有趣的討論。然而,它大部分不適用於Oracle。

如果您需要同時支持,則可以使用transactions and rollbacks創建通用解決方案。我在下面的例子中使用ADO.NET類,但他們對自己的同行互換在ODP.NET

using (DbConnection connection = 
    new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)) 
{ 
    using (DbCommand command = connection.CreateCommand()) 
    { 
     DbTransaction transaction = null; 
     try 
     { 
      connection.Open(); 
      transaction = connection.BeginTransaction(); 
      command.Transaction = transaction; 

      command.CommandText = "The SQL to validate"; 
      command.ExecuteNonQuery(); 

      //The SQL is valid 
     } 
     catch 
     { 
      // The SQL is not valid 
     } 
     finally 
     { 
      transaction.Rollback(); 
     } 
    } 

} 

爲用戶提供反饋的用戶,你可以實現自己的通知,或者如果你想讓它看起來像一個驗證錯誤:在綁定目標上實現INotifyDataErrorInfo,並在服務器的回調中設置錯誤。

+0

好主意老闆....會實現這一點。 – 2013-02-27 04:55:34