Если значения существуют;Не вводите значения.если заявление - PullRequest
0 голосов
/ 18 октября 2011

Начинающий здесь экспериментировать. Я написал небольшой фрагмент кода, который вводит данные из текстового файла в базу данных. Как говорится в вопросе, я хочу написать оператор if (я думаю), который проверяет наличие дубликатов и, если есть дубликат, предотвращает ввод данных. Или, может быть, если значения существуют, тогда donotprocess ();, что-то в этом роде.

У меня небольшая проблема с началом работы, поэтому, если кто-то может дать какое-то представление или указать мне правильное направление, я был бы очень признателен.

    public bool UpdateOrderTrackingNumber(string tracking)
{
    trackingNumber = tracking;
    string statement = "INSERT INTO SOP10107 VALUES(@SOPNUMBE, @SOPTYPE, @Tracking_Number);";
    SqlCommand comm = new SqlCommand(statement, connectionPCI);

    comm.Parameters.AddWithValue("SOPNUMBE", orderNumber);
    comm.Parameters.AddWithValue("SOPTYPE", soptype);
    comm.Parameters.AddWithValue("Tracking_Number", tracking);
    try
    {
        comm.Connection.Open();
        comm.ExecuteNonQuery();
        comm.Connection.Close();
    }
    catch (Exception e)
    {
        comm.Connection.Close();
        KaplanFTP.errorMsg = "Database error: " + e.Message;
    }

    return true;
}

1 Ответ

1 голос
/ 18 октября 2011

Если у вас не может быть повторяющихся строк, вы можете сделать эти три поля первичным ключом. То, хотите ли вы, зависит от понимания того, что означает эта таблица.

Всегда ли Sop Number уникален? Или у разных типов сопов могут быть одинаковые номера? Это соединение между Sop и Tracking, или Tracking является свойством Sop? Может ли у Сопа много трекингов? Что на самом деле представляет эта таблица?

Если вы настроите первичный ключ, то база данных будет препятствовать тому, чтобы ваш код вставлял дубликаты. Это довольно надежная защита, но ваш код должен быть более дружественным и пытаться предотвратить его, а не потерпеть неудачу с исключением «Duplicate Key».

Редактировать: Глядя на имя вашего метода - кажется, что ваш объект является "Sop", и отслеживание является его свойством. Метод называется «обновление», поэтому мы можем предположить или потребовать, чтобы Sop уже существовал? В этом случае это просто заявление об обновлении. Как часто и по какой схеме вы будете вызывать эти методы? Будете ли вы создавать Sops и затем обновлять их номер для отслеживания? Будете ли вы всегда создавать их вместе с номером отслеживания каждый раз?

Может оказаться полезной инфраструктура реляционного отображения объектов. Это более значительный скачок в плане обучения, но он может значительно упростить программирование и понимание.

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