Devaraneni Laxman Rao Ответов: 1

Как избежать дублирования текстового поля для вставки данных в базу данных


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

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

vb.net код
< WebMethod()> _
Общие Суб AddRecord(Имени В Виде Строки)

Дим кон как новое sqlconnection("источник данных=базы данных=;идентификатор пользователя=;password=пароль")
Попробуй
Дим ДТ в качестве нового объекта DataTable
Dim cmd2 As New SqlCommand ("INSERT MDT_MOBILE_FEATURES_SETTINGS(FEATURES_NAME) VALUES (@Name)")
cmd2.Параметры.AddWithValue ("@Name", FName)
Dim cmd As New SqlCommand ("select FEATURES_NAME from MDT_MOBILE_FEATURES_SETTINGS")

УМК.Подключение = кон

Dim da как новый SqlDataAdapter(cmd)
да.Заполнить(ДТ)
Дим strFName(ДТ.Строк.Count-1) Как Строка
Dim X Как Строка

Дим, а как целое
Dim i как целое число
strFName(i) =
Для i = 0-DT.строк.Количество-1

Если (strFName (i) = X), то

Конец, Если

Следующий


strFName(a) = (a)
а = а + 1



cmd2.Подключение = кон
против.Открыть()

cmd2.Метод executenonquery()

Поймать ex как исключение
Бросать



Конец Попытки
Конец Подводной Лодки

Michael_Davies

Не уверен, что вы спрашиваете, но:

Dim cmd2 As New SqlCommand ("INSERT MDT_MOBILE_FEATURES_SETTINGS(FEATURES_NAME) VALUES (@Name)")

Должно быть:

Dim cmd2 As New SqlCommand ("INSERT INTO MDT_MOBILE_FEATURES_SETTINGS (FEATURES_NAME) VALUES (@Name)")

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

Devaraneni Laxman Rao

"into" является необязательным в команде insert в mssql

1 Ответов

Рейтинг:
7

Chetan Ranpariya

Привет Деваранени,

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

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

Я надеюсь, что следующий код может вам помочь.

Public Sub AddRecord(featureName As String)
	Dim connection = New SqlConnection("Data Source=;Database=;User Id=;Password=")
	Dim sqlCmd = New SqlCommand("select Top 1 FEATURE_NAME from MDT_MOBILE_FEATURES_SETTINGS WHERE FEATURES_NAME = @featureName")

	sqlCmd.Parameters.Add(New SqlParameter("@featureName", featureName))

	sqlCmd.CommandType = CommandType.Text

	Dim result = sqlCmd.ExecuteScalar()

	If result IsNot Nothing Then
		Throw New Exception(String.Format("Feature name {0} already exist.", featureName))
	End If

	Dim sqlInsertCommand = New SqlCommand("INSERT MDT_MOBILE_FEATURES_SETTINGS(FEATURES_NAME) VALUES(@Name)")

	sqlInsertCommand.Parameters.AddWithValue("@Name", featureName)

	sqlInsertCommand.ExecuteNonQuery()

	connection.Close()
End Sub


Спасибо и с уважением,
Четан Ранпария


Devaraneni Laxman Rao

приставка.писать("экс.сообщение") не выводит сообщение подскажите пожалуйста как отобразить сообщение об ошибке

Chetan Ranpariya

Привет Деваранени,

Какое приложение вы разрабатываете? Является ли это консольным приложением, приложением Windows или веб-приложением?

Вы не увидите вывод на консоли, если приложение является приложением Windows или веб-приложением.

Devaraneni Laxman Rao

веб-приложение

Devaraneni Laxman Rao

в веб-методе как я могу показать сообщения об ошибках