Поскольку вы говорите, что ваши строки в таблице базы данных должны быть уникальными, просто поместите уникальный индекс в это поле и дайте базе данных решить проблему.
CREATE UNIQUE INDEX UIX_YourTableName_YourFieldName
ON dbo.YourTableName(YourFieldName)
Всякий раз, когда вы пытаетесь вставить другую строку с той же строкой, SQL Server (или любая другая достойная СУБД) выдает исключение и не вставляет значение. Проблема решена.
Если вам уже нужно обработать ошибку в интерфейсном интерфейсе, вам нужно будет загрузить существующие записи из вашей базы данных, используя любую технологию, с которой вы знакомы, например, в ADO.NET (C #, SQL Server) вы можете сделать что-то вроде:
public List<string> FindExistingValues()
{
List<string> results = new List<string>();
string getStringsCmd = "SELECT (YourFieldName) FROM dbo.YourTableName";
using(SqlConnection _con = new SqlConnection("your connection string here"))
using(SqlCommand _cmd = new SqlCommand(getStringsCmd, _con)
{
_con.Open();
using(SqlDataReader rdr = _con.ExecuteReader())
{
while(rdr.Read())
{
results.Add(rdr.GetString(0));
}
rdr.Close();
}
_con.Close();
}
return results;
}
Вы получите обратно List<string>
от этого метода, а затем вы сможете проверить в своем пользовательском интерфейсе, существует ли данная строка в списке:
List<string> existing = FindExistingValues();
if(!existing.Contains(yournewstring))
{
// store the new value to the database
}
Или третий вариант: вы можете написать хранимую процедуру, которая будет обрабатывать сохранение вашей новой строки. Внутри него сначала проверьте, существует ли строка в базе данных
IF NOT EXISTS(SELECT * FROM dbo.YourTableName WHERE YourFieldName = '(your new string)')
INSERT INTO dbo.YourTableName(YourFieldName) VALUES(your-new-string-here)
и, если нет, вставьте его - вам просто нужно найти стратегию, как справляться со случаями, когда новая передаваемая строка действительно уже существует (игнорировать ее или сообщать об ошибке какого-либо рода).
Множество вариантов - до вас, какой из них лучше всего работает в вашем сценарии!