Как игнорировать все остальные параметры базы данных при получении одного параметра базы данных - PullRequest
0 голосов
/ 11 октября 2011

Я создал простой код, который извлекает параметр базы данных («SOPNUMBE», номер заказа) Однако иногда сотрудник будет заполнять неправильный заказ, давая мне значение «LIFTxxxx» вместо SOPNUMBE, которое равно «ORDxxxxx» и т. Д. Поскольку L предшествует S, мой ftp-сайт сначала обрабатывает LIFT, создавая ошибку. Мне бы очень хотелось, чтобы это приложение игнорировало все, кроме «SOPNUMBE», я чувствую, что это довольно простой вопрос, и для меня это звучит как простое утверждение if then. Но у меня проблемы с формулировкой. Любая помощь будет принята с благодарностью !!

public bool UpdateOrderToShipped(string order)
{
    orderNumber = order;
    string batch = ConfigurationManager.AppSettings["SuccessfulOrderBatch"];
    string statement = "UPDATE SOP10100 SET BACHNUMB = '"+ batch +"' WHERE SOPNUMBE = @SOPNUMBE";
    SqlCommand comm = new SqlCommand(statement, connectionPCI);
    comm.Parameters.Add("SOPNUMBE", orderNumber);
    try
    {
        comm.Connection.Open();
        comm.ExecuteNonQuery();
        comm.Connection.Close();
    }
    catch(Exception e)
    {
        comm.Connection.Close();
        KaplanFTP.errorMsg = "Database error: " + e.Message;
    }
    statement = "SELECT SOPTYPE FROM SOP10100 WHERE SOPNUMBE = @SOPNUMBE";
    comm.CommandText = statement;
    SqlDataAdapter da = new SqlDataAdapter(comm);
    DataTable dt = new DataTable();
    da.Fill(dt);
    soptype = dt.Rows[0]["SOPTYPE"].ToString();



    return true;
}

1 Ответ

3 голосов
/ 11 октября 2011

LA отметили в моем комментарии, что если вам неудобно менять этот код с помощью оператора if, то вам, вероятно, не стоит поддерживать этот код.(Знаете ли вы, где еще указан этот код? Ваше изменение повлияет на эти места.)

Но вот, пожалуйста ...

public bool UpdateOrderToShipped(string order)
{
    if ((String.CompareOrdinal(order, 0, "ORD", 0, 3) == 0)
    {
       orderNumber = order;
       string batch = ConfigurationManager.AppSettings["SuccessfulOrderBatch"];
       string statement = "UPDATE SOP10100 SET BACHNUMB = '"+ batch +"' WHERE SOPNUMBE = @SOPNUMBE";
       SqlCommand comm = new SqlCommand(statement, connectionPCI);
       comm.Parameters.Add("SOPNUMBE", orderNumber);
       try
       {
           comm.Connection.Open();
           comm.ExecuteNonQuery();
           comm.Connection.Close();
       }
       catch(Exception e)
       {
           comm.Connection.Close();
           KaplanFTP.errorMsg = "Database error: " + e.Message;
       }
       statement = "SELECT SOPTYPE FROM SOP10100 WHERE SOPNUMBE = @SOPNUMBE";
       comm.CommandText = statement;
       SqlDataAdapter da = new SqlDataAdapter(comm);
       DataTable dt = new DataTable();
       da.Fill(dt);
       soptype = dt.Rows[0]["SOPTYPE"].ToString();



       return true;
   } else
   {
      return false;
   }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...