2011-01-19 3 views
1

У меня есть собственная DLL (для уровня доступа к данным). Я использую технику escaping characters, чтобы избежать ошибок ввода пользователя, но недавно я решил улучшить свои классы, используя параметризованные запросы, чтобы предотвратить все возможные ошибки. Будет ли изменение легко или сложно?Проблема с параметризованным запросом

Как конвертировать запросы для использования параметризованных запросов?

Пожалуйста, покажите мне пример кода, чтобы прояснить идею.

ответ

1

Так я бы сделал это в C# .net и SQL-сервере.

string sQuery = @"INSERT INTO [UserJob] 
             (
             [SIJCJOBID], 
             [SIJCCHDID], 
             [UserID], 
             [SageDatabaseID], 
             [MaxLineValue], 
             [MaxAuthorisationValue], 
             [UpdatedDate], 
             [UpdatedUser] 
            ) 
             VALUES 
             (
             @SIJCJOBID, 
             @SIJCCHDID, 
             @UserID, 
             @SageDatabaseID, 
             @MaxLineValue, 
             @MaxAuthorisationValue, 
             @UpdatedDate, 
             @UpdatedUser 
            ) 
             SELECT SCOPE_IDENTITY() AS 'ID'"; 

        using (SqlCommand oSqlCommand = new SqlCommand(sQuery)) 
        { 
         oSqlCommand.Parameters.AddWithValue("@SIJCJOBID", this.SIJCJOBID); 
         oSqlCommand.Parameters.AddWithValue("@SIJCCHDID", this.SIJCCHDID); 
         oSqlCommand.Parameters.AddWithValue("@UserID", this.UserID); 
         oSqlCommand.Parameters.AddWithValue("@SageDatabaseID", this.SageDatabaseID); 
         oSqlCommand.Parameters.AddWithValue("@MaxLineValue", this.MaxLineValue); 
         oSqlCommand.Parameters.AddWithValue("@MaxAuthorisationValue", this.MaxAuthorisationValue); 
         oSqlCommand.Parameters.AddWithValue("@UpdatedDate", DateTime.Now); 
         oSqlCommand.Parameters.AddWithValue("@UpdatedUser", StaticStore.CurrentUser != null ? StaticStore.CurrentUser.UserName : "SYSTEM"); 

         using (DataTable dt = DataTier.ExecuteQuery(oSqlCommand)) 
         { 
          if (dt.Rows.Count == 1) 
          { 
           int.TryParse(dt.Rows[0]["ID"].ToString(), out m_UserJobID); 
          } 
         } 
       } 
Смежные вопросы