Member 12324523 Ответов: 1

Мой модифицированный код вставляет уже вставленные файлы вместо того, чтобы пропускать те файлы, которые уже вставлены в C#


как я могу проверить наличие дубликатов файлов и предотвратить вставку дубликатов файлов в базу данных

Что я уже пробовал:

it is inserting all the files agaib instead of skipping the files which are already in database

1 Ответов

Рейтинг:
0

Jochen Arndt

Обе версии вашего CheckFileExist возврат функции true когда никаких записей не было найдено.

private bool CheckFileExist(...)
{
    // ...
    // New version
    return (ds.Tables[0].Rows.Count == 0);
    // Old version
    if (ds.Tables[0].Rows.Count > 0)
    {
        // ...
        return false;
    }
    flag1 = true;
    return flag1;
}
Я бы ожидал, что функция вернется true когда запись была найдена и Вы, кажется, относитесь к ней аналогично при оценке возвращаемого значения в новом коде:
if (CheckFileExist(...))
{
    existingFiles.Add(fileName);
}

Но в вашем старом коде он работал (return if false == существует):
var flag1 = CheckFileExist(...);
if (!flag1)
    return;

Я предлагаю перевернуть возвращаемое значение так, чтобы оно соответствовало тому, что указывает имя функции.


Member 12324523

не могли бы вы показать это, отредактировав мой пост и изменив мой код, где бы это ни требовалось, я тоже попробовал это сделать, но это не сработало

Member 12324523

не могли бы вы помочь мне с этим вопросом, так как я боролся с самого утра

Jochen Arndt

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

Я объяснил, что вы обрабатываете возвращаемое значение в обратном порядке по сравнению с вашим старым кодом. Просто измените оператор return в Вашем новом коде на
return (ds.Tables[0].Rows.Count > 0);
таким образом, true возвращается, когда набор записей найден.

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

Затем обычно наступает время выполнить его под отладочным контролем. Там вы можете установить точки останова и проверить переменные.

Member 12324523

его не работает в первый раз, когда я вставил 300. mp3, 301. mp3 при вставке в базу данных во второй раз снова я взял 300. mp3, 301. mp3, 302. mp3
поскольку 300 и 301 уже есть в базе данных, он должен пропустить вставку 300 и 301, а поскольку 302 там нет, он должен вставить 303, как я могу это сделать