Технологии

Решено

Проверка на существование записи перед добавлением в базу данных? - вопрос №71337

Здравствуйте, подскажите решение для исключения перед добавлением в базу access дубликатов.

this.backlinksTableAdapter.Adapter.SelectCommand.CommandText = «SELECT Url FROM backlinks WHERE Url LIKE '» + match.Value.ToString() + "%'";

Думал осуществить выборку из базы с помощь оператора LIKE и сделать проверку через количество возвращенных строк из базы, можно реализовать?

Дополнение автора от апрель 7, 2011 г., 10:31:25

Дело в том что я выбираю значения через regex.match

string parent = @«http://(([a-z\d][-a-z\d]*[a-z\d]\.)*[a-z][-a-z\d]+[a-z]\.[a-z]*)\/»;

foreach( XElement e in like )
{
Regex reg = new Regex(parent);
Match match = reg.Match(e.Value);

this.backlinksTableAdapter.Adapter.SelectCommand.CommandText = «SELECT Url FROM backlinks WHERE Url LIKE '» + match.Value.ToString() + "%'";

if (this.backlinksTableAdapter.Fill(seobacklinksDataSet.backlinks)>0)
{
//MessageBox.Show(«Запись уже есть в базе!!!»);
}
else
{
this.backlinksTableAdapter.Insert(e.Value, "", "", query);
this.seobacklinksDataSet.AcceptChanges();
}

}

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

sergei3456 апрель 6, 2011 г.

  • Всего ответов: 2

  • Кальницкий Игорь Олегович - аватарка

    Кальницкий Игорь Олегович

    369-й в Технологиях

    Я думаю, наилучшим решением будет добавление первичного ключа в базу данных. Тогда сама БД будет следить за целостностью (уникальностью кортежей). И не придется делать проверку в коде, просто добавлять: и если уже строка существует, она просто не добавится :)

    апрель 6, 2011 г.
  • Евгений - аватарка

    Евгений

    9-й в

    Если Вы хотите доавлять только уникальные адреса, то можно как Вы написали, только использовать Count.

    this.backlinksTableAdapter.Adapter.SelectCommand.CommandText = «SELECT Count(Url) FROM backlinks WHERE Url ='» + match.Value.ToString() + "'";

    апрель 7, 2011 г.
    Ответ понравился автору
    Лучший ответ по мнению автора

Похожие вопросы

Решено

Как принудительно удалить объект в C#?

август 3, 2012 г.

Технологии

Решено

Поток не выводит MessageBox сообщение

июль 21, 2012 г.

Технологии

Решено

Заполнение dataGridView данными из array

ноябрь 25, 2011 г.

Технологии